Solve 2021 day 20, 21, 23, 25
This commit is contained in:
29
2021/d25.py
Normal file
29
2021/d25.py
Normal 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"
|
||||
|
||||
Reference in New Issue
Block a user