aoc2022/day03.py
2022-12-03 06:25:57 +01:00

44 lines
945 B
Python

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)