32 lines
777 B
Python
32 lines
777 B
Python
from aoc import AOCDay
|
|
from typing import Any
|
|
|
|
|
|
def evolve_fishes(start_state: list[int], days: int) -> list[int]:
|
|
fishes = [0 for i in range(9)]
|
|
for x in start_state:
|
|
fishes[x] += 1
|
|
|
|
for day in range(days):
|
|
new_fishes = fishes[0]
|
|
for x in range(1, 9):
|
|
fishes[x - 1] = fishes[x]
|
|
|
|
fishes[6] += new_fishes
|
|
fishes[8] = new_fishes
|
|
|
|
return fishes
|
|
|
|
|
|
class Day(AOCDay):
|
|
test_solutions_p1 = [5934]
|
|
test_solutions_p2 = [26984457539]
|
|
|
|
def part1(self) -> Any:
|
|
start_state = self.getInputAsArraySplit(",", int)
|
|
return sum(evolve_fishes(start_state, 80))
|
|
|
|
def part2(self) -> Any:
|
|
start_state = self.getInputAsArraySplit(",", int)
|
|
return sum(evolve_fishes(start_state, 256))
|