Skip to content

Commit c05dc7d

Browse files
committed
feat: 2024 day 10b
I already solved part B when solving part A. B seems simpler to implement than A, since you don't have to prune visited routes and you can just count each possible route. Anyway, this code is cleaned up. The submitted solution was more messy.
1 parent d335b77 commit c05dc7d

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

2024/10b.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
from aoc import *
2+
3+
4+
def search(i, j, m):
5+
return (
6+
1
7+
if m[i, j] == 9
8+
else (
9+
sum(
10+
search(di, dj, m)
11+
for di, dj in (
12+
(i + di, j + dj)
13+
for di, dj in ((1, 0), (0, 1), (-1, 0), (0, -1))
14+
if (i + di, j + dj) in m
15+
and m[i + di, j + dj] == m[i, j] + 1
16+
)
17+
)
18+
)
19+
)
20+
21+
22+
def main(infi: str):
23+
inp = load_map_dd(infi, init=int)
24+
return sum(
25+
search(i, j, inp)
26+
for i, j in [(i, j) for (i, j), num in inp.items() if num == 0]
27+
)
28+
29+
30+
DAY = 10
31+
FILE_TEST = f"{DAY}_testa.txt"
32+
# FILE_TEST = f"{DAY}_testb.txt"
33+
FILE_EXP = f"{DAY}_exp.txt"
34+
FILE = f"{DAY}.txt"
35+
# test_and_submit(main, FILE_TEST, FILE_EXP, FILE, DAY)
36+
# print(main(FILE_TEST))
37+
print(main(FILE))

0 commit comments

Comments
 (0)