Solve day7

This commit is contained in:
2025-12-12 21:10:13 -08:00
parent 3aa15fdbba
commit 6c76a4a921
5 changed files with 205 additions and 0 deletions

25
day7/part2.py Normal file
View File

@@ -0,0 +1,25 @@
from pathlib import Path
FILE = "input.txt"
def main():
raw_lines = Path(FILE).read_text().splitlines()
position = raw_lines[0].index('S')
return traverse(position, raw_lines[1:], 0, dict())
def traverse(position: int, grid: list[str], level: int, memo: dict[tuple[int, int], int]) -> int:
if (position, level) in memo.keys():
return memo[(position, level)]
if not len(grid):
return 1
if grid[0][position] == '^':
memo[(position, level)] = (
traverse(position-1, grid[1:], level+1, memo) +
traverse(position+1, grid[1:], level+1, memo)
)
return memo[(position, level)]
memo[(position, level)] = traverse(position, grid[1:], level+1, memo)
return memo[(position, level)]
if __name__ == "__main__":
print(main())