33 lines
686 B
Python
33 lines
686 B
Python
from lib import get_data, Grid2D
|
|
|
|
data = get_data(__file__)
|
|
g = Grid2D(data)
|
|
|
|
r = 0
|
|
adjs = []
|
|
for pos in g.all_coords():
|
|
if g[pos] != "@":
|
|
continue
|
|
nr_of_rolls_adj = len([nb for nb in g.neighbors_adj(pos) if g[nb] == "@"])
|
|
if nr_of_rolls_adj < 4:
|
|
r += 1
|
|
adjs.append(pos)
|
|
print(r)
|
|
|
|
r = 0
|
|
while True:
|
|
adjs = []
|
|
for pos in g.all_coords():
|
|
if g[pos] != "@":
|
|
continue
|
|
nr_of_rolls_adj = len([nb for nb in g.neighbors_adj(pos) if g[nb] == "@"])
|
|
if nr_of_rolls_adj < 4:
|
|
adjs.append(pos)
|
|
if adjs:
|
|
r += len(adjs)
|
|
for a in adjs:
|
|
g[a] = "."
|
|
else:
|
|
break
|
|
print(r)
|