advent_of_code/2021/6/6.py

31 lines
662 B
Python
Raw Permalink Normal View History

2021-12-07 03:32:23 +01:00
#!/usr/bin/env python
# 2021 - Advent Of Code - 6
def parse_file(file):
2022-04-05 13:27:24 +02:00
with open(file, encoding="utf-8") as f:
2021-12-07 03:32:23 +01:00
line = f.readline()
return [int(x) for x in line.split(',')]
def iterate(state):
new_fish = 0
2021-12-13 05:38:24 +01:00
for i, _ in enumerate(state):
2021-12-07 03:32:23 +01:00
if state[i] == 0:
new_fish += 1
state[i] = 6
else:
state[i] -= 1
state.extend([8]*new_fish)
init_state = parse_file('input.txt')
print(f'Initial state: {init_state}')
DAYS = 80
for d in range(DAYS):
iterate(init_state)
# print(f'After {d+1:2} days: {init_state}')
print(f'There\'s {len(init_state)} lanterfish after {DAYS} days')