Solve 2021 day 20, 21, 23, 25

This commit is contained in:
2024-11-27 17:31:52 -05:00
parent 4acc229c5a
commit a2a6ca52d1
8 changed files with 388 additions and 1 deletions

29
2021/d25.py Normal file
View File

@@ -0,0 +1,29 @@
from lib import get_data
from lib import Grid2D
data = get_data(__file__)
g = Grid2D(data)
seen = set()
for i in range(10**9):
if g.hash() in seen:
print(i)
break
seen.add(g.hash())
blocked = set(g.find(">v"))
for p in g.find(">"):
np = (p[0], (p[1] + 1) % g.n_cols)
if np in blocked:
continue
g[p] = "."
g[np] = ">"
blocked = set(g.find(">v"))
for p in g.find("v"):
np = ((p[0] + 1) % g.n_rows , p[1])
if np in blocked:
continue
g[p] = "."
g[np] = "v"