-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlanternfish.py
More file actions
23 lines (18 loc) · 1.2 KB
/
lanternfish.py
File metadata and controls
23 lines (18 loc) · 1.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
""" Advent of Code 2021. Day 6: Lanternfish """
fish = [3, 4, 3, 1, 2]
fish = [4,1,1,4,1,2,1,4,1,3,4,4,1,5,5,1,3,1,1,1,4,4,3,1,5,3,1,2,5,1,1,5,1,1,4,1,1,1,1,2,1,5,3,4,4,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,5,1,1,1,4,1,2,3,5,1,2,2,4,1,4,4,4,1,2,5,1,2,1,1,1,1,1,1,4,1,1,4,3,4,2,1,3,1,1,1,3,5,5,4,3,4,1,5,1,1,1,2,2,1,3,1,2,4,1,1,3,3,1,3,3,1,1,3,1,5,1,1,3,1,1,1,5,4,1,1,1,1,4,1,1,3,5,4,3,1,1,5,4,1,1,2,5,4,2,1,4,1,1,1,1,3,1,1,1,1,4,1,1,1,1,2,4,1,1,1,1,3,1,1,5,1,1,1,1,1,1,4,2,1,3,1,1,1,2,4,2,3,1,4,1,2,1,4,2,1,4,4,1,5,1,1,4,4,1,2,2,1,1,1,1,1,1,1,1,1,1,1,4,5,4,1,3,1,3,1,1,1,5,3,5,5,2,2,1,4,1,4,2,1,4,1,2,1,1,2,1,1,5,4,2,1,1,1,2,4,1,1,1,1,2,1,1,5,1,1,2,2,5,1,1,1,1,1,2,4,2,3,1,2,1,5,4,5,1,4]
from collections import Counter
def simulate(fish, days=80):
fish = Counter(fish)
for day in range(days):
# Storing the number of spawning fishes
new_fish = fish[0]
# Adjusting the days until spawn
fish = Counter({k-1: fish[k] for k in range(1, 9)})
# Adding the spawning fishes to the 6 day group
fish[6] += new_fish
# Adding the spawned fishes
fish[8] = new_fish
return sum(fish.values())
print("Part 1:\t", simulate(fish))
print("Part 2:\t", simulate(fish, days=256))