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)