35 lines
876 B
Python
35 lines
876 B
Python
from collections import Counter
|
|
|
|
from tools.aoc import AOCDay
|
|
from typing import Any
|
|
|
|
|
|
class Day(AOCDay):
|
|
inputs = [
|
|
[
|
|
("easter", "input6_test"),
|
|
("zcreqgiv", "input6"),
|
|
],
|
|
[
|
|
("advent", "input6_test"),
|
|
("pljvorrk", "input6"),
|
|
],
|
|
]
|
|
|
|
def parse_input(self) -> list[Counter[str]]:
|
|
l = self.getInput()
|
|
return [Counter("".join([line[x] for line in l])) for x in range(len(l[0]))]
|
|
|
|
def part1(self) -> Any:
|
|
counts = self.parse_input()
|
|
return "".join(list(sorted(x.keys(), key=lambda k: x[k], reverse=True))[0] for x in counts)
|
|
|
|
def part2(self) -> Any:
|
|
counts = self.parse_input()
|
|
return "".join(list(sorted(x.keys(), key=lambda k: x[k]))[0] for x in counts)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
day = Day(2016, 6)
|
|
day.run(verbose=True)
|