blob: f9d4f878ac7bec7f637a95be71b6b12039faa021 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
from typing import Iterator, Any, Generator, List
from aoc import BaseAssignment
class Assignment(BaseAssignment):
def read_input(self, example = False) -> Generator:
group = []
for line in super().read_input(example):
if len(line) == 0:
yield group
group = []
continue
group.append(line)
yield group
class AssignmentOne(Assignment):
def run(self, input: Iterator) -> Any:
return sum([
len(set(''.join(group)))
for group in input
])
class AssignmentTwo(Assignment):
def everyone_same_answer_count(self, group: List):
answer_count = {}
for person in group:
for answer in person:
answer_count[answer] = answer_count[answer] + 1 \
if answer in answer_count \
else 1
return sum([
1
for value in answer_count.values()
if value == len(group)
])
def run(self, input: Iterator) -> Any:
return sum([
self.everyone_same_answer_count(group)
for group in input
])
|