diff --git a/2024/day4/main.py b/2024/day4/main.py index c541d63..5ed87c2 100644 --- a/2024/day4/main.py +++ b/2024/day4/main.py @@ -76,6 +76,7 @@ print(f'XMAS Count: {total}') # Part 2 def check_pos(pos: Vector) -> bool: chars = [] + poss = [] for dir in [UP + LEFT, UP + RIGHT, DOWN + LEFT, DOWN + RIGHT]: new_pos = pos + dir @@ -88,8 +89,22 @@ def check_pos(pos: Vector) -> bool: elif new_pos.x < 0 or new_pos.x >= len(data[new_pos.y]): return False chars.append(data[new_pos.y][new_pos.x]) + poss.append(new_pos) if chars.count('M') == 2 and chars.count('S') == 2: + m_pos = None + + for i, char in enumerate(chars): + match char: + case 'M': + if not m_pos: + m_pos = poss[i] + else: + if poss[i].x != m_pos.x and poss[i].y != m_pos.y: + return False + + + return True return False