From 121e71a0885dddf36ce2210c6d6475e3dc0bb2e9 Mon Sep 17 00:00:00 2001 From: Stefan Harmuth Date: Fri, 2 Dec 2022 06:34:30 +0100 Subject: [PATCH] day02 --- day02.py | 46 + inputs/input2 | 2500 ++++++++++++++++++++++++++++++++++++++++++++ inputs/input2_test | 3 + 3 files changed, 2549 insertions(+) create mode 100644 day02.py create mode 100644 inputs/input2 create mode 100644 inputs/input2_test diff --git a/day02.py b/day02.py new file mode 100644 index 0000000..e627656 --- /dev/null +++ b/day02.py @@ -0,0 +1,46 @@ +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) diff --git a/inputs/input2 b/inputs/input2 new file mode 100644 index 0000000..69dff16 --- /dev/null +++ b/inputs/input2 @@ -0,0 +1,2500 @@ +B Z +C Z +C Z +A Y +B Z +C Y +C Z +C Y +C X +A Z +B Z +C Z +A Y +C Z +B X +C Y +C Z +C X +C X +C Y +C Y +C X +A Y +C Y +C Y +C X +C Z +C X +A X +C Z +C Y +C Z +C Z +C Z +A Z +C Z +B Z +A Y +A X +A Y +C Z +A Y +C Z +A Z +C Y +C Y +C Y +A X +C X +C X +C Y +A X +A Y +C X +A X +C Z +A Y +C Z +C Y +A Y +C Z +A X +A Y +A X +C X +C Z +A X +B Z +C Z +C Y +C X +C X +C Z +C X +C Z +A X +C Y +A Y +C Y +C Z +C X +B X +B Z +C Z +C X +A X +B Z +A Y +A Y +B Z +A Y +C Y +B Z +B X +C X +C X +C X +A X +A Z +A Y +A Y +C Y +C Z +C Z +C Z +A Y +C X +A Y +A X +C X +C X +A X +A Y +A X +A X +A Y +C Y +A Y +A Y +A X +C X +B Z +A X +C Y +C X +C Z +C Z +C Z +C Z +C Y +C X +C X +A X +A Y +A X +C Z +C X +C Y +C Y +C Z +C Z +B Z +C Z +C Y +C X +C Y +A X +A Y +C X +B Z +B Y +C Z +C Y +C X +A Y +C Y +B Z +A Z +C X +C Z +C Y +C X +C Z +A X +A Y +C Y +C Y +A Y +A X +A X +C X +C X +C Z +A Y +A Y +C Y +C Z +A X +A Y +C X +C X +C Y +C X +C Z +C X +C Z +C Z +C Z +C Z +A Y +B Z +C Y +C Z +A Z +C X +C X +A X +A Z +C Z +C X +C Z +A X +B Z +B Z +A X +C X +C X +B Z +B Z +B Z +C Z +C X +A Y +C Z +A X +C Y +C Z +C Z +C X +C X +C Z +C Y +C Y +C X +C X +A X +C Y +A X +C Y +C X +B X +B Z +C X +C X +B X +C Z +C Y +A X +C Z +C Z +C Z +C Y +C X +A Y +A Z +C Z +B Z +C Z +C X +A Y +C X +C X +A X +C X +C Z +A X +C Z +C Y +C Y +C Y +C Z +A X +C Y +C X +C Z +A X +C Z +C X +C X +C X +A Y +C Z +A Y +C Z +C Y +C Z +A Y +C X +C X +C X +C Y +C Z +C X +C Y +C X +A X +C X +C Y +C X +C Z +C X +B Z +C X +B Z +B X +C X +C X +C X +B X +A Y +A Y +A X +B Z +C X +A Z +C Y +C X +C X +C Y +A Y +A Z +C X +A Y +C Z +C X +C X +C Y +C Y +A Z +A X +C Z +C X +C Z +B Y +A Y +C Z +A Y +C Z +A X +C Y +C Y +C X +A Y +C X +C X +B X +C Z +C X +C Y +C Z +C Z +C Y +C Y +C Y +C X +B Z +C X +C X +C Y +C Y +C Z +B Z +C X +C Y +B Z +C Z +A Y +C X +C X +A Y +C Y +C Z +C X +A Y +A Y +C Z +C Z +C Z +A X +C X +C Z +C Z +C Z +A Y +A X +C X +C Z +C X +C X +C Y +A Y +C X +C Y +C Z +C Y +A X +C X +C X +C Z +A X +B X +C Y +A X +C Y +C Y +C X +C Z +B X +C X +C Z +A Y +C Z +C X +A X +C Y +A X +C Z +A X +C X +C Y +C X +C Z +C X +C X +C Y +A X +C Y +A Y +C Z +C X +C X +A X +A Z +C X +C X +C Y +B Z +A X +A X +C X +B Z +C Z +A Y +C Y +C Z +C X +A Z +C Y +A X +C Y +C Z +C Z +C X +C Y +C X +C Y +C Y +C X +A Y +B X +C X +A X +A Y +C Y +C Z +C Y +C X +A Y +C Z +C X +C X +A Z +C Y +C Z +A X +C X +C Z +A Y +A X +B X +C Z +B Z +C X +A Z +C Z +A X +A Y +C X +A X +B Z +C X +C Y +C Z +C Y +C Y +C Z +C X +B X +C Y +B Y +C Z +A Y +A Y +C Y +C Z +A X +C Z +C Y +B Z +C X +A X +C X +C X +C Y +C Y +C Z +A Y +C Z +A X +A Y +C X +C Y +C Z +C X +A X +B Z +C Z +A X +C X +C X +C X +B Z +C Z +C Y +B Z +A X +C Z +C Y +A X +C X +B Z +C Y +C X +C Z +C Z +C Z +C X +C Y +B X +A X +B Z +C X +C Y +C Z +C X +C Z +C Z +C Z +C Y +A X +C X +C Z +A X +C X +C Z +B X +C Z +B Z +A Y +A X +C Z +C Z +C Y +C Z +C Y +C Z +A Y +B Z +A Y +C X +A X +A X +A X +B Z +C Z +B Y +C Y +A Y +A Y +C Z +A Y +C Z +C Z +A Y +C Z +C Z +C Z +A Y +C Z +C Z +C Z +C Z +A Y +C Y +A Y +C Y +C X +C X +C Z +C X +C Z +C Y +A X +C Z +B X +C Z +A X +C Z +C Z +C Y +C Z +C Y +C X +C Y +B X +C Z +C X +C Y +A Y +C X +C Z +C X +C Z +C X +A Z +C Z +C X +C X +B Z +C Z +C X +A X +C Y +A Y +C X +C Z +C Z +A Y +A X +B Y +C Y +C Y +C Y +C X +A X +C Z +C Y +C Z +C X +C Z +C Z +C Y +B X +C X +C Z +C X +C X +C Y +A X +B Z +A X +C X +C Z +B Z +A Y +C Y +B Z +C X +A Z +A X +C Z +C Z +C X +A Y +B Y +C X +C Z +B Y +A Y +A Y +C X +A X +C Y +C X +C X +C Z +A X +A X +A X +B Z +C Y +C Z +C X +A X +B Z +C Z +C Z +C X +C X +C X +C X +C Z +C Y +C Z +C Z +C Z +A Y +C Z +C X +C Y +C X +B Y +A Y +C Z +C X +C Z +A X +A X +C Y +C Y +C X +C Z +C Z +C Z +C X +C Z +C X +C Y +C X +C X +C Y +C Y +B Z +C Z +C Z +B Z +C Y +C Z +C Y +B Z +C X +C Z +C Y +C Z +A Y +C Z +B Z +C Z +C X +C X +A Z +C Z +C X +A Y +A Z +A X +C Y +C X +C Z +C X +C X +C Y +C X +C Z +C X +C Y +C Y +C Z +C Y +C Y +C Y +A Z +A Y +C Z +C Y +C Z +C X +A X +C Z +C Z +A Y +C Z +C X +C X +C X +C Z +C X +C Z +C Y +A Z +C Z +C Y +C Z +C X +C Y +C Y +C X +C X +C Z +A Y +C Y +B Z +A Y +C Y +C X +C Z +C X +C Y +C Z +A Y +A X +C Z +B Y +C Y +A X +C Y +C Z +B Z +C Y +C Z +C Z +B Z +C X +A Y +C Z +C X +B Y +B Z +C Z +B Z +C X +A X +A X +B Z +C Z +C Z +C Z +C Y +A Y +C Z +B X +C Y +A Z +C Y +C Y +A Y +C X +C Y +B Z +C X +C X +C X +B Z +C X +B Z +A X +C Y +C Y +A X +C X +A Y +C X +A X +C Z +A X +C X +C X +A Y +C Z +C Z +C X +C X +B Z +A Y +C Y +C X +A Y +C Z +A X +C X +B Z +C X +C X +B X +B X +B Z +C Z +C X +A Y +B Z +B Y +C X +C Z +A Y +C Z +C X +C X +B Z +C X +A Y +A X +A Z +C Z +C Y +B Z +C X +A X +C X +A X +C X +C X +C Z +A X +B Z +C Z +C X +C X +A X +C Z +C X +C X +C Z +C Y +C X +A X +C X +C X +C X +A X +C Z +C Z +C Y +B Z +C X +A Y +C Z +C X +C Y +B X +A X +C X +B Z +C Y +B X +A Y +B X +C Z +C Y +C X +C Z +A Y +A Y +C X +A X +C X +C X +A Y +A X +B X +C Y +A Y +C X +C Z +A Y +C Z +B Z +C Z +A X +C Y +C Y +C Y +A Y +A Z +A Y +C X +C X +A Y +C Y +A X +C Y +A Y +C X +C Y +B Z +C Z +C Z +B X +C Y +B X +A Y +A Y +A X +A Y +C Z +C Z +C Y +B Z +A Z +C X +C Z +A X +C X +C X +C Z +C Y +C X +A Y +C Z +B Z +A Y +A X +C Y +B X +C Z +A Y +C X +C Y +C X +A X +C Z +C Z +C X +C Z +A X +C X +C X +A Z +B Z +A X +C Y +C X +A X +C X +C Z +C Y +A Y +C X +A Y +A X +C Y +A Y +C X +A Y +C X +B Z +C X +C X +C X +C Z +C Z +C Z +B Z +C X +B Z +C X +A X +A Y +A Y +A X +C Y +A X +C Y +A Y +B Z +C X +C X +C Y +C X +C Z +A X +A Y +C Z +A X +C X +C X +B X +C X +A Y +C X +C Z +B Z +A X +B Z +C Y +C Z +C Y +C Y +C X +C Z +C Z +C Z +A X +C X +A X +A Y +A X +C Z +C Z +A Z +C Y +B Z +A X +C Z +C Z +C X +C X +A X +A Z +C Z +C X +C X +C Y +C Y +C Y +A Y +A Y +C Z +A X +C Z +C X +A X +C Y +C Z +C Y +A X +A Y +A X +C Z +B Z +C Z +A X +C X +C Y +C X +C X +C Y +C Z +C Z +C Y +C X +A Y +C Y +C Z +B Z +C Y +C Y +A X +C Z +B Z +C X +B Z +B Z +C Z +C X +C Z +A X +C Z +C X +A Y +A X +A Y +C Z +C Z +C Z +C Z +C X +B Z +C Y +C X +B Z +C X +A X +A Y +C X +A Z +A Y +A X +C Y +C Z +C Y +C Z +B Z +C Y +C X +A Y +B Z +C Z +C Z +C Y +C X +C Z +A Y +C Y +A Y +C Z +B Z +C Z +A X +C Z +C Z +C Y +C X +C Y +A X +C Y +C Z +C X +A X +B Z +C Y +C X +C Z +C Y +A X +C X +A Y +A Y +C X +C Z +C Y +B Z +B X +C Y +C X +C X +C Z +C Y +C X +C Z +C Y +A X +B Y +A X +A Y +C X +A X +A X +A X +C Y +B X +B Z +C Z +C X +C Z +A Y +C Y +C X +B Z +A X +C X +A Y +C X +C X +C X +B Z +C Z +C X +B X +C Z +C Y +C X +C Y +C Z +C Z +C Z +A X +C X +C X +C X +B Z +C Z +A Y +C X +B Z +B Z +A Y +A Y +B Z +C X +C Y +A X +C Y +C X +C Y +C Y +C X +B Z +C Z +C Z +C Z +C Y +A Y +C Z +C Y +A X +C X +C Z +C Y +A Y +C Z +C X +B Z +C X +C Z +C Z +C Y +A X +A Y +C Z +A Y +C Z +C X +C Z +C Z +A X +A X +C X +B Z +B Z +C Y +A Y +C X +C X +C Z +C Z +A Y +C Y +C Z +A X +C X +C Y +A Y +C X +C X +A Z +C X +C Y +C Z +C X +B Z +C X +A X +C Z +C Z +A X +C Z +C Y +C Z +C Z +A Y +C X +C X +C X +C Y +C Z +C X +C X +C Y +B Z +A X +C X +A Y +B Z +A Y +A X +A X +B X +C Y +A Y +C Y +C Z +A X +C X +A Y +A Y +C Z +C X +C Z +C Z +C Z +C Z +A Y +A Y +A X +C X +A Y +C Y +A X +C X +C X +C X +B Z +C Z +B Z +A X +C Z +C Z +C Y +C X +C X +C X +C Y +A Z +B X +B Z +C X +B Z +A X +A Y +C Z +B Y +C X +C X +A Y +C Y +C Y +C Z +C X +A X +B Z +C X +A X +A X +C X +A X +C Y +B X +C Z +C Z +C Z +C Z +C X +C Z +C X +C Z +C Z +A X +C Z +C X +B Z +A Y +C Z +B Z +C Y +C X +C X +C Z +C Y +C X +C Z +C X +B X +C Z +A Y +C X +B Z +A Y +A X +C X +C X +B Z +C Y +C Z +C X +C Z +C Z +C Z +B X +C X +C X +C Y +B Z +A Y +C Y +C Z +A Z +A Y +C Z +C Y +C Y +A X +B Z +B Z +C X +A X +C Z +B Z +C Z +C Y +C Z +C Y +A X +C X +C Y +C X +B X +C Y +A Y +C X +C Z +A Z +C Y +A X +C Z +C Y +B Z +C Y +C Z +A Y +C Z +C X +A Y +C X +C Z +C X +B Z +C X +A X +C Z +C Z +C X +C Z +C X +C Z +C Z +A Z +A X +B Z +B X +C Z +C X +B Z +C X +C Y +C Z +C Z +A X +A X +C Y +B Z +A X +C X +C Z +A Z +A Z +C Z +C Y +C X +C Y +C Z +A Z +A X +A Y +C X +C Z +A Y +C Y +A Y +A X +C Z +C X +C Z +C X +B Z +A Y +C X +A X +C X +B X +C X +A X +C X +A X +C Y +A Y +C X +A Y +C X +C Z +C X +B Z +A X +C Z +A X +C Z +C Z +C Y +C Z +C Y +C X +A Y +C X +A X +C Z +C X +A Y +C Y +C X +C X +C Z +C X +C Y +C X +C X +C X +C X +A Y +A Y +A Y +C Z +C X +B Y +B Y +A Y +C Z +C X +A Y +C Z +C Y +C X +C Z +A X +C Z +C Z +C Y +A X +A X +C Z +C X +C X +C X +C Z +C Z +A Y +C Y +A X +B Z +C Z +C Y +C Z +A X +C Z +C X +C X +A Y +C Z +C X +C Z +C Z +A Y +C Y +C Z +A X +C Y +C Z +A X +C X +A X +C X +C Z +C X +C Z +C Z +C Y +C Y +A Y +C Y +A X +C Y +C X +C Z +C X +A X +C X +A X +A Y +A X +C Z +A X +C Y +C X +A Y +C Z +C Z +C X +B X +C Z +C Y +A Y +B Z +C Y +C X +B Z +C X +A Y +A X +A X +A X +C X +A X +C X +C Z +C X +A X +C Y +A Y +C X +C Z +C X +C Z +C Y +C X +A X +C X +C Y +A Y +A X +B Z +C Y +B Z +C Y +C X +A Y +C X +C Z +C X +C Y +A X +C Y +C Y +C Z +C Y +C X +C Z +C X +C X +C X +C Z +C X +A Y +A Y +C X +C Z +B Z +C X +C Y +C X +C X +C Z +C Z +C X +C X +A Z +A X +C X +B Z +C Z +C Y +C Z +C X +C X +C X +C Z +C X +A X +A X +C Z +C X +A Z +C X +A X +A X +C Z +A X +A Y +C Z +A Z +A Y +C Y +C X +A Y +A X +C Z +C X +A Y +B Z +C Z +A X +C Z +C X +A X +A Y +C Z +C Y +C Z +C Z +B Z +C X +C Z +C Z +C Y +C X +C Z +C X +C X +B Z +B Z +A Y +B X +B Z +C Z +A Z +C Y +C X +C Z +C X +C X +A X +C X +A Y +B X +C Z +C Y +C X +C Z +C Y +C Y +C X +B Z +C X +B Z +C Y +C Y +C Y +C X +C X +A X +A X +A X +C Z +A X +C Z +C X +C Y +C Z +C Y +A Y +C Y +A X +A Y +C Y +C Z +C Z +A Y +C X +C X +A X +C Y +C X +C Y +A X +C X +C Y +C Z +C Z +B Z +A Y +C X +B Z +C Y +A X +C Z +C X +C Z +B X +C Z +C Z +C Z +C X +C Z +C Z +C X +C Z +C Z +B X +A X +C Y +C Z +A Y +C Y +C Z +C Z +C X +A Y +A X +C Y +C Y +A Y +C Z +C X +C X +C X +A Y +C X +B X +C Z +C Z +C X +C Z +C X +A Y +A Z +C Z +C Z +B X +C Y +A Z +A Y +C Z +C X +C Z +C X +A X +A Y +C Y +A X +C Z +C X +C Z +B X +C X +C Z +B Z +C Z +C Y +C Y +A X +C Z +C X +C Y +C Z +C Z +A Y +C Z +C Y +C Y +A X +B Z +C Z +A X +C Y +C Y +C Z +A X +C X +C Z +C X +C X +C Z +C Y +C X +C Z +B Z +C Y +A X +A X +C X +C Z +A X +C X +B Z +C Y +C Z +C Y +C X +C Z +B Y +C X +C Z +A X +C X +A X +C X +C Z +B Z +C Z +C Z +A Z +C Y +C X +A X +C Z +A X +A Y +C X +C Z +C Y +A Y +C Y +C X +A X +C X +C Y +C X +C X +C Z +C Z +C X +C Z +A X +A X +C X +C Z +B Z +A X +C X +C Z +C Y +C X +B Z +C X +C X +C X +B X +C Y +A Y +C Z +A Z +A Y +A Y +C Y +B Z +C Z +C Y +C X +C Z +C X +B Z +B X +A X +A Z +A Y +C Z +C Y +C Y +C X +B Y +C Y +C X +C X +B X +C Y +C Z +B Z +C X +C Y +A Y +C Z +C X +C Z +A X +C Z +A X +A Y +C Y +A Y +C Y +C Z +A X +C Y +C Y +C X +B X +C Z +C X +C Z +C Z +C Z +C X +C Z +C Y +C X +C Y +C X +C X +C X +C X +A Y +C X +A Y +C X +C Z +A X +A Z +C Z +C X +C X +C X +C X +B Z +C Z +C Z +C Y +C X +C Z +C X +B Z +B Z +C Z +C Z +C X +C X +C Z +B Z +C X +A Y +C X +C Z +C X +C Y +C Z +C Z +C X +C Z +A Y +A Y +C X +C Z +C Z +C X +C X +B Z +C X +C Z +C Z +C X +C Z +A X +C Z +B Z +C Z +A Y +C Z +C X +C X +B Z +A Y +C Z +A Y +C Y +A Z +C X +A X +C X +A Y +C Z +C X +C Z +C Z +C X +C Z +A X +B Z +C Y +C Z +C Z +C X +C Z +B Z +C Y +C Z +C Z +A X +B Z +A X +B Z +C X +C Z +A Z +A Z +C X +A X +A X +B Z +A Y +A Y +A Z +C X +C Z +C Z +C X +C X +C X +A X +C X +C Z +C Y +C Z +C X +C Z +C X +A X +A Y +C X +A X +C X +B Z +B Z +B X +C X +A X +B X +C X +A Y +C Z +C Y +C Z +C X +A X +A Y +C Z +B Z +C X +B Z +C Z +B Z +A X +A X +C Y +B Z +C X +B Z +A Y +C Z +A Y +C Z +C X +A Z +C Z +C Z +B Z +A Y +B Z +C Y +C X +A Y +A X +A X +C X +C Y +B Z +C X +C Z +C Z +A X +A Y +C X +C Y +B Z +C Z +C X +A X +C Z +C X +C X +B Z +C Y +A Y +A X +C Z +B Z +C X +C Z +A Y +C X +B Z +C Y +B X +C X +C X +C Y +A Y +A X +C Y +C Y +C Z +C Y +C Y +C X +B X +C X +A Y +C Z +C Z +A Y +C Z +C Z +C Z +C Z +C Z +C Y +A Y +C Z +A X +C Y +C Z +C X +C Z +C X +A Z +C X +A Y +B Y +B Z +A Y +A Y +C Z +C X +B Z +B X +B Y +C X +C Z +B Z +A X +C X +C X +C Y +A X +C Z +C Y +A Y +A X +A X +B X +A Y +C Y +C Z +C Z +C X +C X +A X +C Z +A Z +A Y +A X +C X +A Y +B Z +C X +C Z +C Y +C Z +C Z +C X +C Z +A X +A Y +C X +C X +C X +C Z +C Y +C Z +B Z +C Z +B Z +A Y +A X +C Z +C X +C Z +C X +A X +C Z +C Z +C X +C X +C Z +A Y +A Z +A Y +C Z +C Z +C X +C Y +C X +C Y +A X +C X +A Y +B Z +B Z +C X +C X +C Z +C X +A Y +A Z +A Y +C X +C Z +A Y +C Y +C Z +B Z +A X +C X +C Z +C Z +A Y +A Y +A Y +A Y +C X +B Z +A Z +B X +A X +B X +C Z +C Z +C Z +B Z +A Y +C Z +C Y +C X +C Y +A Y +C X +C Y +C Y +A X +C Y +C X +C X +C X +C X +A Y +A Y +C X +C Z +C Z +A Y +C Z +A Y +C Z +C Z +C X +C X +C Z +C Y +C Z +A X +A X +C Y +B Z +A X +B Z +B Z +C X +C Z +C Y +A X +C Z +C Y +C Z +C Y +A Y +B X +C Y +C Y +C X +C X +C Z +C Z +C X +A Y +C Z +B Z +C Y +C X +C Y +C Z +C X +A X +A Y +C Z +B Z +C X +C Z +C X +C Z +C X +A X +C Z +A X +B Z +C X diff --git a/inputs/input2_test b/inputs/input2_test new file mode 100644 index 0000000..25097e8 --- /dev/null +++ b/inputs/input2_test @@ -0,0 +1,3 @@ +A Y +B X +C Z \ No newline at end of file