solve day 4 part 2
This commit is contained in:
parent
d2446e6bb8
commit
c8dc6578f9
1 changed files with 25 additions and 1 deletions
|
|
@ -47,11 +47,32 @@ def get_xmas_appearances(grid: list) -> int:
|
||||||
for col in range(len(grid[0])):
|
for col in range(len(grid[0])):
|
||||||
for direction in directions:
|
for direction in directions:
|
||||||
if check_xmas_from_pos(grid, row, col, direction, xmas_letters):
|
if check_xmas_from_pos(grid, row, col, direction, xmas_letters):
|
||||||
print(f"Found XMAS at position ({row}, {col}) in direction {direction}")
|
# print(f"Found XMAS at position ({row}, {col}) in direction {direction}")
|
||||||
xmas_appearances += 1
|
xmas_appearances += 1
|
||||||
return xmas_appearances
|
return xmas_appearances
|
||||||
|
|
||||||
|
|
||||||
|
def check_cross(grid: list, row: int, col: int) -> bool:
|
||||||
|
a1 = grid[row - 1][col - 1]
|
||||||
|
a2 = grid[row + 1][col + 1]
|
||||||
|
b1 = grid[row - 1][col + 1]
|
||||||
|
b2 = grid[row + 1][col - 1]
|
||||||
|
if (a1 == "M" and a2 == "S") or (a1 == "S" and a2 == "M"):
|
||||||
|
if (b1 == "M" and b2 == "S") or (b1 == "S" and b2 == "M"):
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def get_cross_mas_appearances(grid: list) -> int:
|
||||||
|
cross_mas_appearances = 0
|
||||||
|
for row in range(1, len(grid) - 1):
|
||||||
|
for col in range(1, len(grid[0]) - 1):
|
||||||
|
if grid[row][col] == "A":
|
||||||
|
if check_cross(grid, row, col):
|
||||||
|
cross_mas_appearances += 1
|
||||||
|
return cross_mas_appearances
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
# lines = get_lines("sample-input.txt")
|
# lines = get_lines("sample-input.txt")
|
||||||
lines = get_lines("input.txt")
|
lines = get_lines("input.txt")
|
||||||
|
|
@ -59,6 +80,9 @@ def main():
|
||||||
grid = get_grid(lines)
|
grid = get_grid(lines)
|
||||||
xmas_appearances = get_xmas_appearances(grid)
|
xmas_appearances = get_xmas_appearances(grid)
|
||||||
print(f"Part 1: The word XMAS appears {xmas_appearances} times.")
|
print(f"Part 1: The word XMAS appears {xmas_appearances} times.")
|
||||||
|
cross_mas_appearances = get_cross_mas_appearances(grid)
|
||||||
|
print(f"Part 2: The cross-MAS pattern appears {cross_mas_appearances} times.")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue