Day 6, Year 2021: Lanternfish
First read the problem description.
def next_generation(fs):
= {k-1:v for k, v in fs.items()}
fs 6] += fs[-1]
fs[8] = fs[-1]
fs[-1] = 0
fs[return fs
def nth_generation(fs, n):
for _ in range(n):
= next_generation(fs)
fs return fs
def fish(l):
= {i:0 for i in range(9)}
fs for d in l:
= fs[d] + 1
fs[d] return fs
= fish([3,4,3,1,2])
fs = nth_generation(fs, 80)
fs sum(fs.values())
5934
import import_ipynb
import helper
= helper.read_file('2021_6.txt') s
= map(int, s.rstrip().split(','))
fs = fish(fs)
fs = nth_generation(fs, 80)
fs sum(fs.values())
372300
= map(int, s.rstrip().split(','))
fs = fish(fs)
fs = nth_generation(fs, 256)
fs sum(fs.values())
1675781200288
Source code of the solution(s):