aoc2022/day03.py

45 lines
936 B
Python

from tools.aoc import AOCDay
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"),
(7742, "input3_dennis"),
(7863, "input3"),
],
[
(70, "input3_test"),
(2276, "input3_dennis"),
(2488, "input3"),
]
]
def part1(self) -> Any:
es = 0
for line in self.getInput():
es += get_prio(line[:len(line)//2] & line[len(line)//2:])
return es
def part2(self) -> Any:
rucksacks = self.getInput()
es = 0
for g in range(len(rucksacks) // 3):
es += get_prio(rucksacks[g*3] & rucksacks[g*3+1] & rucksacks[g*3+2])
return es
if __name__ == '__main__':
day = Day(2022, 3)
day.run(verbose=True)