47 lines
1.0 KiB
Python
47 lines
1.0 KiB
Python
from tools.aoc import AOCDay
|
|
from typing import Any
|
|
|
|
|
|
class Day(AOCDay):
|
|
inputs = [
|
|
[
|
|
(15, "input2_test"),
|
|
(14163, "input2"),
|
|
],
|
|
[
|
|
(12, "input2_test"),
|
|
(12091, "input2"),
|
|
]
|
|
]
|
|
|
|
def part1(self) -> Any:
|
|
score = 0
|
|
for line in self.getInput():
|
|
e, m = map(ord, line.split(" "))
|
|
e, m = e - 64, m - 64 - 23
|
|
score += m
|
|
if e == m:
|
|
score += 3
|
|
elif m == e + 1 or m == (e + 1) % 3:
|
|
score += 6
|
|
|
|
return score
|
|
|
|
def part2(self) -> Any:
|
|
score = 0
|
|
for line in self.getInput():
|
|
e, m = map(ord, line.split(" "))
|
|
e -= 64
|
|
if m == 88: # lose!
|
|
score += 3 if e == 1 else e - 1
|
|
elif m == 89: # draw!
|
|
score += 3 + e
|
|
else: # win!
|
|
score += 7 if e == 3 else e + 7
|
|
return score
|
|
|
|
|
|
if __name__ == '__main__':
|
|
day = Day(2022, 2)
|
|
day.run(verbose=True)
|