aoc2016/day06.py
2024-12-28 10:39:45 +01:00

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)