summaryrefslogtreecommitdiffstats
path: root/day6/__init__.py
diff options
context:
space:
mode:
authorGravatar Tom van der Lee <tom@vanderlee.io>2021-12-06 13:50:26 +0100
committerGravatar Tom van der Lee <tom@vanderlee.io>2021-12-06 13:50:26 +0100
commit906fc128a0f99fec656901f55055ef78e10693b4 (patch)
tree67c986c2ed534cf4adde5118e5f7888a246bc2fe /day6/__init__.py
parentde73ba3b8ae1831a271a9ae617313aa495f2e48c (diff)
download2021-906fc128a0f99fec656901f55055ef78e10693b4.tar.gz
2021-906fc128a0f99fec656901f55055ef78e10693b4.tar.bz2
2021-906fc128a0f99fec656901f55055ef78e10693b4.zip
Day 6
Diffstat (limited to 'day6/__init__.py')
-rw-r--r--day6/__init__.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/day6/__init__.py b/day6/__init__.py
new file mode 100644
index 0000000..616f055
--- /dev/null
+++ b/day6/__init__.py
@@ -0,0 +1,42 @@
1from collections import Counter
2from copy import copy
3from typing import List
4
5from aoc import BaseAssignment
6
7
8class Assignment(BaseAssignment):
9 days = 80
10
11 def parse_item(self, item: str) -> List[int]:
12 return [ int(i) for i in item.split(',') ]
13
14 def read_input(self, example = False) -> List[int]:
15 return next(super().read_input(example))
16
17 def run(self, input: List[int]) -> int:
18 fish_counter = Counter(input)
19
20 for _ in range(self.days):
21 labour_fish = fish_counter.get(0, 0)
22
23 for fish in range(8):
24 fish_counter[fish] = fish_counter[fish + 1]
25
26 fish_counter[6] += labour_fish
27 fish_counter[8] = labour_fish
28
29 return fish_counter.total()
30
31class AssignmentOne(Assignment):
32 example_result = 5934
33
34class AssignmentTwo(Assignment):
35 example_result = 26984457539
36 days = 256
37
38
39
40
41
42