AdventOfCode/2020/Day11/main.py
2022-12-09 08:29:06 +01:00

35 lines
991 B
Python

import collections
import copy
def getNeighbors():
count = [temp[x][y + 1], temp[x][y - 1], temp[x + 1][y + 1], temp[x - 1][y + 1], temp[x + 1][y], temp[x - 1][y],
temp[x - 1][y - 1], temp[x + 1][y + 1]]
count = collections.Counter(count)
return count
if __name__ == '__main__':
with open("input.txt") as f:
raw = list(f.read().splitlines())
while True:
temp = copy.deepcopy(raw)
for x in range(len(temp)):
for y in range(len(temp[x])):
line = list(temp[x])
symbol = line[y]
if symbol != '.':
neigh = getNeighbors()
if symbol == "L" and neigh["#"] == 0:
line[y] = '#'
if symbol == "#" and neigh["#"] >= 4:
line[y] = 'L'
temp[x] = line
if temp != raw:
break
raw = copy.deepcopy(temp)
print(getNeighbors()["#"])