From 99b4a74c88b978acd4ea04c143033acc3266f448 Mon Sep 17 00:00:00 2001 From: 0x01fe <0x01fe@0x01fe.net> Date: Wed, 4 Dec 2024 21:39:16 -0600 Subject: [PATCH] solved part 2 --- 2024/day4/main.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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