WIP day 4
This commit is contained in:
parent
b02a740fe9
commit
6c112f7be6
54
day4/run.py
Normal file
54
day4/run.py
Normal file
|
@ -0,0 +1,54 @@
|
|||
from typing import List, Tuple
|
||||
|
||||
EXAMPLE = """
|
||||
MMMSXXMASM
|
||||
MSAMXMSMSA
|
||||
AMXSXMAAMM
|
||||
MSAMASMSMX
|
||||
XMASAMXAMM
|
||||
XXAMMXXAMA
|
||||
SMSMSASXSS
|
||||
SAXAMASAAA
|
||||
MAMMMXMMMM
|
||||
MXMXAXMASX
|
||||
"""
|
||||
|
||||
|
||||
class FindXMAS:
|
||||
def __init__(self, input: str) -> None:
|
||||
self.input = input
|
||||
self.inputgrid = self._to_grid(self.input)
|
||||
|
||||
def __str__(self) -> str:
|
||||
return f"Part1: {self._part1}\nPart2: {self._part2}"
|
||||
|
||||
@property
|
||||
def _part1(self) -> int:
|
||||
pass
|
||||
|
||||
@property
|
||||
def _part2(self) -> None:
|
||||
pass
|
||||
|
||||
@staticmethod
|
||||
def _to_grid(input: str) -> List[List[str]]:
|
||||
return [list(line) for line in input.splitlines() if line]
|
||||
|
||||
def locate_xmas(self) -> List[Tuple[int, int, int, int]]:
|
||||
locate: Tuple[int, ...] = []
|
||||
for i, line in enumerate(self.inputgrid):
|
||||
for j, char in enumerate(line):
|
||||
if char.upper() == "X":
|
||||
for k, contchar in enumerate(("M", "A", "S")):
|
||||
offset = k + 1
|
||||
for row in range(i - offset, i + offset + 1):
|
||||
for col in range(j - offset, j + offset + 1):
|
||||
pass
|
||||
|
||||
return locate
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
example = FindXMAS(EXAMPLE)
|
||||
print(example)
|
||||
assert example._part1 == 18
|
Loading…
Reference in a new issue