solved part 2

This commit is contained in:
0x01fe 2024-12-04 21:39:16 -06:00
parent 348a7c3cdb
commit 99b4a74c88

View File

@ -76,6 +76,7 @@ print(f'XMAS Count: {total}')
# Part 2 # Part 2
def check_pos(pos: Vector) -> bool: def check_pos(pos: Vector) -> bool:
chars = [] chars = []
poss = []
for dir in [UP + LEFT, UP + RIGHT, DOWN + LEFT, DOWN + RIGHT]: for dir in [UP + LEFT, UP + RIGHT, DOWN + LEFT, DOWN + RIGHT]:
new_pos = pos + dir 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]): elif new_pos.x < 0 or new_pos.x >= len(data[new_pos.y]):
return False return False
chars.append(data[new_pos.y][new_pos.x]) chars.append(data[new_pos.y][new_pos.x])
poss.append(new_pos)
if chars.count('M') == 2 and chars.count('S') == 2: 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 True
return False return False