from tools.aoc import AOCDay from tools.tools import list_intersection from typing import Any def get_prio(char: str) -> int: if ord(char) > 90: return ord(char) - 96 else: return ord(char) - 38 class Day(AOCDay): inputs = [ [ (157, "input3_test"), (7863, "input3"), ], [ (70, "input3_test"), (2488, "input3"), ] ] def part1(self) -> Any: es = 0 for line in self.getInput(): es += get_prio(list_intersection(line[:len(line)//2], line[len(line)//2:])[0]) return es def part2(self) -> Any: rucksacks = self.getInput() es = 0 for g in range(len(rucksacks) // 3): es += get_prio(list_intersection(rucksacks[g*3], rucksacks[g*3+1], rucksacks[g*3+2])[0]) return es if __name__ == '__main__': day = Day(2022, 3) day.run(verbose=True)