summaryrefslogtreecommitdiffstats
path: root/day6/__init__.py
diff options
context:
space:
mode:
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