#Skip to menu

Day 6, Year 2021: Lanternfish

First read the problem description.
def next_generation(fs):
    fs = {k-1:v for k, v in fs.items()}
    fs[6] += fs[-1]
    fs[8] = fs[-1]
    fs[-1] = 0
    return fs

def nth_generation(fs, n):
    for _ in range(n):
        fs = next_generation(fs)
    return fs

def fish(l):
    fs = {i:0 for i in range(9)}
    for d in l:
        fs[d] = fs[d] + 1
    return fs
fs = fish([3,4,3,1,2])
fs = nth_generation(fs, 80)
sum(fs.values())
5934
import import_ipynb
import helper
s = helper.read_file('2021_6.txt')
fs = map(int, s.rstrip().split(','))
fs = fish(fs)
fs = nth_generation(fs, 80)
sum(fs.values())
372300
fs = map(int, s.rstrip().split(','))
fs = fish(fs)
fs = nth_generation(fs, 256)
sum(fs.values())
1675781200288

Source code of the solution(s):