From c5a6b4a82db29ed54ed054f88e47262a345b52fb Mon Sep 17 00:00:00 2001 From: TobenderZephyr Date: Wed, 24 Dec 2025 19:23:42 +0100 Subject: [PATCH] (update) 2022 day 2 --- 2022/02/example | 3 + 2022/02/input | 2500 +++++++++++++++++++++++++++++++++++++++++++++++ 2022/02/main.py | 48 + 3 files changed, 2551 insertions(+) create mode 100644 2022/02/example create mode 100644 2022/02/input create mode 100644 2022/02/main.py diff --git a/2022/02/example b/2022/02/example new file mode 100644 index 0000000..25097e8 --- /dev/null +++ b/2022/02/example @@ -0,0 +1,3 @@ +A Y +B X +C Z \ No newline at end of file diff --git a/2022/02/input b/2022/02/input new file mode 100644 index 0000000..8d57c60 --- /dev/null +++ b/2022/02/input @@ -0,0 +1,2500 @@ +B X +C Y +A X +B X +B Y +B X +A Z +A Z +A X +C X +C X +B X +B X +C X +C Y +A Z +B Y +C Y +C X +B X +B X +C Y +A Z +A Z +C X +A Z +A Z +B X +A X +C Y +B Y +C X +B Y +B X +B X +A X +B Y +A Z +A Z +A Z +A Z +C X +B X +B Z +B X +C Y +B X +A Z +B X +A Z +A Z +A Z +C Y +C Y +C Y +A X +B X +B X +B Y +A Z +B Y +B X +B Y +A Z +C X +B X +A Z +B X +A Z +C Y +B X +C Y +A Z +C X +C Y +C X +C Y +C X +A X +A X +B Y +A X +A Y +A X +C Y +C Y +A Z +B Y +A Z +C Y +A Z +B X +A X +B X +C Y +A Y +B X +B X +C Y +A X +A X +C Y +B Y +A Z +A X +C Y +C X +A Z +B Y +B X +B Z +C X +B Y +C X +B Z +C X +A Z +C X +C Y +C Y +B Y +B Y +C Y +A X +B Y +A Z +B X +C X +C Y +B X +A X +C Z +A Z +B Y +A X +B X +A X +B X +B Y +B X +B Y +B Y +C Y +B X +B Y +B X +B X +A Z +C Y +B Y +A Z +C X +B X +B X +B Y +B X +C Y +A Z +A Z +C Y +C Y +A X +A Z +A Z +C X +A Z +B Y +A Z +A Y +B X +A Z +C Y +C Y +B X +A Z +B X +A X +A X +B Z +C Y +C Y +C Y +C X +C Y +B X +B X +B Y +A X +B X +B X +C X +A X +C Y +B X +A Z +B Y +A Z +B Y +B X +A Y +C Y +C X +B Z +C Y +B Y +B Y +B X +C Y +B X +C Y +A Z +A X +B X +A Z +C Y +C X +C Y +B Y +B Y +A Z +C Y +B X +B X +B X +A Z +C X +A Z +B X +A Z +B X +B X +B X +B Y +C X +A Z +B X +B X +C Y +A X +B Y +B X +A Z +A Z +B X +C Y +A Z +A Z +B X +B Y +B Y +B X +A Z +C X +A Z +A X +C Y +B Z +A Z +A Z +A Z +A X +C Y +B X +C Y +A Z +A Z +C Y +B X +A Z +A X +A Y +A Z +B Y +C Y +B Y +A Z +A Z +C Y +C Y +A Z +A Z +C X +A Z +A Z +C X +C Y +B X +B Y +B Y +B X +C Y +A X +C X +A X +B X +C Y +C Y +C X +B Z +A X +A Z +C Y +C Y +C Y +B X +B Y +A Z +A Z +C X +B X +A Z +C Y +B Z +B X +A X +A Z +A X +B X +B X +A Z +A Z +B Y +B Y +B Y +B X +A Z +B X +C X +B Y +B Z +A Z +C X +C Y +B Y +A X +C X +A Z +B X +A X +A Z +B X +C X +B X +A Z +B Y +B Z +A X +C Y +A Z +B Y +B Z +C X +B X +C Y +C Y +B X +A X +B X +B Y +A Z +C Y +A Z +C Y +A Z +A X +B Z +C X +C Y +B X +C X +B Z +B X +C Y +A Z +A Z +C Y +B X +A Z +C Y +A X +B Y +A Z +B X +A Z +A Z +C Y +B X +A Z +A Z +C Y +B Y +B Y +C X +C Y +B Y +C X +B Y +A Z +C Y +B Y +A Z +B X +B X +A Y +B X +B X +B Y +B Y +C X +C Y +A Z +C X +A Z +A Z +A Y +A Z +B Z +C Y +C Y +C Y +C X +C Y +C Y +B X +C Y +C X +B X +C Y +C X +C Y +A Z +C Y +B Z +C X +A Z +C Y +C X +B X +B Z +C Y +C Y +B X +B Y +A X +B Y +A Z +C Y +C X +C X +A X +B Y +A Z +B Y +C Y +B Y +B Y +A X +C X +A Z +C X +A Z +B X +A X +A Z +B X +A X +B X +C Y +B Y +B X +C X +C Z +A Z +B Y +B X +A X +B Y +C Y +C Y +A X +C X +B Z +A Z +A Z +B X +A Z +C X +B Z +B Z +C Y +C Y +B Y +C Y +A Z +C Y +B X +B X +B X +A Y +A Z +A Z +A Z +C Y +B Y +B Y +C Y +A Z +A Z +A Y +C Y +C Y +A Z +C X +B X +A Z +C Y +C Y +A X +A Z +C X +A X +B Z +B X +B X +A Z +C Y +B Y +A Z +A Z +C Y +A Z +A X +C X +A Z +B X +C X +C Y +B Z +C Z +A Z +A X +C X +B Y +C Y +A X +B Y +A Z +B X +B Y +A X +C X +A Z +A Z +B X +A X +A X +C Y +B Y +A Z +C X +A Z +B Y +A Y +C Y +B X +C X +B X +B X +A Z +B X +C X +C Y +A Z +C Y +A Z +B Z +B Z +A Z +A Z +A Z +A Z +C Y +C Y +A Z +A Z +B Y +A Z +A Z +A X +C Y +C Z +A X +C X +B X +B X +A Z +C Y +A Z +A Z +B X +A Z +C Y +B Z +A Z +A Z +A Y +C X +A Z +B Y +B Y +C X +B X +C X +A X +C Y +A X +C X +A Z +B X +B X +A Z +B X +A Z +A X +B X +A Z +B X +C Z +B X +C Z +A Z +B X +C Y +A Z +B X +B X +B Y +C Y +A Z +A Z +C X +C Y +A Z +C Y +A Y +C Y +B Y +B Y +B X +C X +A Z +C Y +A Z +C Y +C X +A Y +C Y +C X +A Z +C Y +B X +A Z +A Z +B Y +C X +A Z +A Z +B Y +C Z +A Z +B X +B X +B Y +A Y +A X +A Z +B Y +C X +C X +B Z +B Y +A Z +B Z +C Y +B X +A X +C X +A Z +A Z +B Y +B Y +B X +C Y +A X +C X +C Z +C X +B Y +B Y +A Z +B X +A Z +A Z +C Y +C Y +A X +C X +C Y +C X +A Z +B Z +B Y +C X +A Z +B X +B X +A X +A Z +B Z +B X +A Z +A Z +A Z +B X +C Y +B X +A X +A X +C Y +A Z +C Y +B X +A Z +B X +B Y +B Y +A Z +B X +B Y +C Y +B X +B Y +B Y +B Y +A Z +C Y +B X +B Y +C Y +C X +B X +C X +A Z +C Y +A Z +A Z +C Y +B Y +A Z +B Y +B Y +B Z +B X +B X +B X +A X +C Y +B X +B X +B X +B X +B X +A Z +A Z +A Z +A Z +A Z +C Y +B Y +C X +A Z +C Y +B X +C Y +C X +A Z +A Z +B X +C Y +C Y +A Z +B X +A Z +B Y +B Y +C Y +C Z +C Y +B Y +B X +C X +C Y +B X +B X +A X +C Y +A Z +B Y +A X +C Y +A Z +A Z +A X +A Z +A X +B Y +C Y +B X +C Y +A X +C X +C X +B Y +A Z +C Y +C Z +C Y +C Y +C X +C Y +A Z +A Z +B X +C X +A Y +B X +C X +C X +B Y +A Y +A Z +C X +C X +C Z +B X +A X +C Y +A Z +B X +A Z +B X +B X +C X +B X +B X +A X +B X +B X +C Y +B Y +A Y +B X +B Z +C X +A Z +C Y +A X +C Y +C Y +B X +B X +C Y +C Y +C Y +A Z +A Z +C X +C X +B X +C Y +C Y +B X +C Y +A Z +A Z +C Y +C X +A Z +A Z +B X +B Y +C X +B X +B Z +A Z +B X +B X +B X +C Y +A Y +A Z +B Z +B X +B X +B Y +A Z +B Y +B X +A X +A Z +C Y +B X +C Y +C Y +A Z +A Z +B Z +A Z +B X +C Y +B Y +B Z +B Y +A Z +C Y +C Y +B Y +C X +C Y +A Z +C X +A Z +B X +B Y +A Z +B Z +C X +C Y +B Y +C Y +B Y +A Z +C X +B X +A Z +B X +B X +B X +A X +C X +B Y +C X +A Z +C Y +B X +A Z +A Z +A X +B Y +A Z +A Z +C X +A Z +B Y +A X +B X +B Y +A Z +B Z +B X +A Z +C Y +A X +A Z +C Y +C X +C Y +C X +A Z +A Z +A Z +C Z +C X +C Y +A Z +C Y +C Y +C Z +C Y +C Y +A X +A X +A Z +B X +B Z +A Z +B X +A Z +A Z +C X +A Z +B Y +A Z +B Z +A Z +C X +A Z +B Z +A X +C Y +B Y +C Y +C X +C Y +C X +A Z +C Y +C Y +C Y +C Y +A Z +B Z +B Y +B X +B X +C Y +A Z +A Z +A X +C X +A Z +B X +A Z +B X +C Y +C X +A Z +B X +C Y +A X +B Y +C Y +C X +A X +C Y +A Z +B X +C X +A X +B Y +B Z +A Z +A Z +A X +A Z +C X +A Z +B X +B X +C Y +B X +B X +A Z +B X +A Z +B X +B Z +A Y +A X +A Z +C X +A Z +A Z +B X +B X +B Y +B Y +A X +C X +A Z +C X +A Y +A Z +C X +B Y +A Z +C Y +A Z +A Z +C Y +A Z +A Z +A Z +A Z +B X +C Y +B Y +A X +B X +A Z +B Y +B X +B Y +B Y +C Y +C X +C X +B Y +C Y +A Z +B X +C X +B Z +A Z +C X +B X +C Y +C X +A Z +C X +C Y +B X +C X +C Y +B Y +A X +A Z +C X +C X +B X +B X +B X +C Y +B X +B X +B Y +B Y +B X +C X +C Y +B X +B X +B X +A Y +B Z +C X +C Y +C Y +B X +B X +A Z +A X +C Y +B X +C X +B X +B Y +A X +C Z +C Y +A Z +B Y +B Y +A Z +C X +C X +A Z +B Y +A Z +B X +A Z +C Y +C Y +B Y +A Z +A Z +A Z +C Y +C Y +A X +C X +B Y +C Y +C Y +C X +A Z +A Z +C X +C Y +A X +B X +A X +B Y +A X +A Z +A Z +C Y +A Z +B X +C X +A Z +A Z +A Z +C Y +C X +A Z +C Y +C Y +B X +B X +C X +B X +C X +A Z +B X +B Z +B X +B X +C Y +A X +A Z +B X +A Z +C Y +A Z +C Z +A Z +C Z +C X +A Z +B Z +A Z +C Y +B X +C Y +A Y +C Y +C X +B X +B Y +C X +A Z +B Z +A Z +B Y +B X +A X +B X +B Z +C Y +B Y +C Y +C X +B X +C Y +C Y +A Y +C Y +B X +B X +A Z +B X +B Z +C X +A Z +C Z +C Y +A Z +A Z +B Z +C X +A Z +C Y +A Z +A Z +B X +B Y +B Z +C X +C Y +B X +A Z +B X +A Z +B X +A Z +B X +A X +C Y +B Y +C Y +B X +A Z +B X +C Y +B Y +B Y +B X +A Z +B X +C Y +A X +A Y +B X +A Z +A Z +B Y +A Z +A Z +C Y +B Y +A Z +C Y +C Y +C Y +B Y +A Z +B X +A Z +C Z +A Z +A Y +B Z +C Y +A Z +C Y +C X +B Y +A Z +A Z +B X +A X +A Z +B X +A Z +C Y +C X +A Z +A Z +C X +A X +A Z +C Y +A Z +A Z +C X +C Y +B X +B Y +B Y +C Y +C Z +B Z +C X +C Y +A X +A Z +B X +B Y +B Y +C X +B Z +B Y +B X +B Y +C X +C Y +B X +B Y +B X +C X +C Y +C X +A Z +B Z +B Z +C X +C X +B X +C X +B X +C Y +C Y +C Y +B X +C Y +C X +A X +A Z +A X +A Z +B X +B X +A Z +A X +B Y +A Z +B X +A Y +B X +C Y +A Y +A Y +B X +B Y +C Z +C Y +B Y +B Y +B X +A Z +A Z +B X +A X +B X +B Y +B X +B X +A Z +C X +A Z +A X +A Z +B Z +B X +A Z +C X +A X +B Y +C X +B X +C X +A Y +A Z +B Y +C Y +A Z +A Z +A Z +A Z +A X +A Z +B X +A Z +C X +A Z +B Y +C Y +A Z +B X +A Z +C Y +B X +C Z +B Y +C X +A Z +A X +C Y +B Y +B X +C Y +C X +A Z +B X +C Y +A Z +A Y +C Y +B X +C X +B Y +A X +C Y +B X +C Y +A Z +A Z +A Z +C Y +B Z +B X +A Z +A X +B X +C X +B X +A Z +B X +B X +B Y +B X +A Z +C X +B X +A Z +A Z +C X +A X +A X +B X +B Y +A Z +C Y +C Y +B X +B X +A X +A Z +A Z +A X +B X +A Z +B Y +C X +B X +B X +C Y +A Z +B X +A X +C Y +C Y +C Y +A Z +B Y +C Y +C Y +C X +A Z +B Y +B X +B Y +B X +C Y +C Y +A X +B X +B X +C Z +C Y +B Z +A Z +B X +B X +B Y +C Y +C Y +A Z +C X +B X +B X +A Z +B Y +B Z +B X +A Z +A Z +A Z +C X +C Y +C X +C X +A X +C X +C Y +A X +B X +A Z +A X +B Y +B X +A Z +A Z +C Y +B Y +A Z +B X +C X +A Z +A Z +C X +B X +C Y +B X +B X +C Y +A Z +A Z +A Z +A X +A X +B X +A Z +B X +A X +C Y +C X +C X +A X +A Z +C Y +B X +A Z +A Z +A X +A Z +B Y +C X +B X +C X +C X +C X +A X +C Y +A Z +C Y +B X +B X +B X +C Y +C Y +A Z +A Z +C Y +A Z +B Y +B X +A Z +B Y +C Y +A Z +C X +B X +C Y +C Y +C X +C X +A Z +B X +A Z +B X +C X +B X +C Y +C Z +C X +C Y +A Z +A Z +A Z +B Z +B X +A Z +A Z +B X +A X +B Y +B X +C Y +C Y +A Z +B X +C Y +A X +A Z +B Z +A Z +C X +B Y +B Y +A Z +A Z +C Y +B X +C Z +C X +A Z +A Z +B X +B X +A X +B Y +C X +A Z +C Y +A X +B X +A Z +B Y +B X +B Y +A Z +B Y +C X +A Z +B X +A Z +C Z +A Z +A X +B X +C Y +A Z +A Z +A Z +C X +B X +A Z +A Z +B X +A Z +A Z +B Z +A Z +C Y +B X +C Y +C Y +C X +B X +A Z +B Y +A Z +C X +B X +C Y +A Z +B X +B Y +C X +C Y +A X +C Y +B Z +C X +B X +C X +B X +A Z +B X +A Z +B Y +B X +A Z +B Z +A X +B Y +B X +C X +C X +B X +B Y +C Y +B X +C X +C X +C Y +A Z +C X +A Z +C Z +C X +B X +B X +A Z +A X +A Z +C X +A Z +B X +A Z +B Y +A Z +A Z +A Z +B Y +A Z +A X +A Z +C Y +A Z +C Y +A Z +A Z +C Y +A Z +A Z +C Y +B Y +A Z +A Z +A X +C X +B X +A Y +B Y +A Z +C Y +C Y +A Y +C Y +B Y +B X +A Z +B Y +C X +A Z +A Z +A Z +B Z +A Z +C Y +B X +B X +C Y +A Z +C Y +A Z +A X +A Z +B Z +C Y +B X +C Y +A Z +C Y +B X +C Y +B Z +B X +A Z +C Y +A Z +C Z +A Z +C X +B X +A X +A X +B Y +A X +B Z +B X +A Z +B Y +B X +A Z +A Z +A Z +C X +A Z +B Y +C Y +A Z +C X +A Y +A Z +B Z +B Z +C Y +A X +B X +B Y +C Y +C Y +A X +A Z +C X +C Y +C Y +B Y +B X +A Z +B X +A Z +A Z +B X +B Y +B X +A X +C Y +B X +B Z +A Z +A X +C X +B Y +C Z +B X +A X +B Y +A Z +C Y +C Y +A X +C Y +B X +A Z +A Z +A Z +A Y +B X +B X +A Z +C X +A Z +C Z +B Z +A Z +B X +A Z +C Y +B Y +B X +A Z +C Z +B Y +A Y +B X +B Y +A Z +C Y +B X +A Z +B X +C Y +A X +C X +A Z +A X +A X +A X +C Y +C X +A Z +A Z +C Y +B X +B Y +B X +B Y +A Z +C Y +B Y +B X +A Y +B Y +A Z +B X +B X +A Z +C X +B Y +A Z +A X +C X +C X +A Z +C Y +B Y +A Z +A Z +C Y +C X +A Z +C X +B X +C Y +C X +C Y +B X +B Y +C X +A Z +A Z +C Z +A Z +A Z +C X +C X +B X +B X +C X +B Y +A Z +C Y +C X +B Z +B X +B X +C X +B X +A Z +C Y +A X +B Y +B X +C X +B X +C Y +B X +B Y +A Z +C Z +C X +B Y +A Z +B Z +C Y +B Y +A Z +A Z +B X +B X +B Y +A Z +B X +B Z +A Z +C Y +C Y +A Z +B Z +C Y +C Y +C X +B X +B X +C Y +B X +C X +C X +A X +C Y +B Y +A Z +C Y +A X +A Z +A Z +C Y +C Y +B Y +B Y +A X +A Z +B X +A X +A X +B Y +B Y +B X +C X +A Z +A Z +B Y +C Y +C X +B Y +B Y +A X +B X +C Y +B X +A Z +A Z +C Z +A Z +B Z +B Z +B X +A X +C Y +B X +B X +C X +A Z +B X +C X +C Y +C Y +A Z +A Y +C Y +C Y +B X +A Y +B Z +A Z +A Z +C X +C Y +A Z +A Z +B X +B Y +A Z +A Y +B X +C Y +A Z +B Y +B X +B X +B X +A Z +A Z +A X +B Z +B Z +A X +C Y +C Y +B X +A Z +A X +A Z +C X +A Z +C Y +A Z +A Z +B X +A Z +C X +C Y +C X +B Y +C Y +B X +A Z +B Y +A Z +A Z +A Z +C X +C X +B Z +B Z +B X +B Y +A Z +C X +C Y +A X +C Z +A Z +B X +C X +B X +A Z +B X +A Z +C X +A X +B X +B X +A Z +B X +B X +C Z +B Z +B X +A Y +C X +B X +B Y +B Z +C Y +B X +C X +C Y +A X +B X +C X +C X +B X +A Z +C Y +B X +A X +A Z +B X +B X +C X +A X +A X +A X +C Y +A Z +C X +A Z +C X +C X +A Z +C Y +A Z +B Y +A Z +B X +C X +A Z +C X +B Z +B X +A X +C X +C X +C Y +C Y +B X +B Y +B X +C Y +C X +C Y +B Y +A Z +B Z +C Y +C Y +A Z +B X +C Y +A Z +A Z +A X +B X +A Z +B X +A X +C X +B Y +B X +A Z +C X +C X +B X +C Y +C Y +C Y +A Z +B X +A Z +B Y +A X +B X +A Z +B Y +B Y +B X +C X +A X +B Y +A Z +B X +C X +B X +A Z +C Y +A Z +A Z +B X +B X +A X +A X +C Z +C X +B Z +C Y +A Z +C Y +C Y +A Z +B X +C Z +C X +B X +C X +A Z +C Y +C Y +B X +A Z +C X +B X +B X +A X +C Y +B X +A Z +A Z +B X +B X +B Y +A Z +A Z +B Y +B X +C X +B X +A X +A Z +A X +B X +B X +C Y +A Z +A X +C Y +B X +C X +C X +C X +C X +B Z +B Y +C X +A X +C Y +C Y +C X +B X +B Y +B X +B X +B X +C X +B X +B X +C Y +C Z +B X +C Z +A Z +A Z +C Y +B Z +B Y +A Z +A Y +C Y +B X +C Y +A Z +B Y +C Y +C Y +A Z +A Z +C Z +A X +A Y +B Y +A Z +A Z +A X +C Y +B Y +A Z +A Z +B Y +C Y +C Y +A Z +A Z +B Y +A Z +B X +A X +A Z +B Y +C Y +C X +A X +C X +C Y +B X +B X +A Z +C Y +B X +B Y +C Y +A X +B Z +B Y +C Y +C Y +A Z +A Z +A X +C Y +A Z +B X +A Z +C X +C X +C Y +C X +B X +C X +A Z +B X +B X +B Y +B X +C Y +A Z +B Y +B X +C X +C Y +C Y +A Z +A Z +B Z +B X +A Z +C Y +A Z +B X +A Z +A Z +B X +B Y +A Z +B Z +C Y +A X +C Y +C Y +B Y +B Y +B X +C X +A Z +B Z +A X +C Y +B X +A Z +A Z +C Y +B X +C X +B X +A Z +C Y +A Z +B Z +A Z +A Z +A Z +B X +C Y +C Y +C Y +A Y +C X +C Y +B Y +A Z +C Y +A X +A X +C Y +A X +B Y +C X +C Y +A Z +C Y +A X +B Y +C Y +B Y +B X +B X +C Y +A Z +C X +A Z +C Y +A Z +C Z +A Z +C Y +A Z +C X +A X +C Y +B Y +C Y +C X +A Y +A Z +C Z +A Z \ No newline at end of file diff --git a/2022/02/main.py b/2022/02/main.py new file mode 100644 index 0000000..b710cc3 --- /dev/null +++ b/2022/02/main.py @@ -0,0 +1,48 @@ +SCORES = [ + {"id": "A", "name": "rock", "wins_over": "C", "points": 1}, + {"id": "B", "name": "paper", "wins_over": "A", "points": 2}, + {"id": "C", "name": "scissors", "wins_over": "B", "points": 3}, + {"id": "X", "name": "rock", "wins_over": "C", "points": 1, "strategy": "lose"}, + {"id": "Y", "name": "paper", "wins_over": "A", "points": 2, "strategy": "draw"}, + {"id": "Z", "name": "scissors", "wins_over": "B", "points": 3, "strategy": "win"}, +] + +with open("input", "+r") as file: + total_score = 0 + for line in file.readlines(): + them, us = map(lambda x: x.strip(), line.split()) + our_game = list(filter(lambda x: x["id"] == us, SCORES))[0] + their_game = list(filter(lambda x: x["id"] == them, SCORES))[0] + + if our_game["wins_over"] == them: + total_score += our_game["points"] + 6 + continue + + if our_game["name"] == their_game["name"]: + total_score += our_game["points"] + 3 + continue + + total_score += our_game["points"] + + print("part 1:", total_score) + +with open("input", "+r") as file: + total_score = 0 + for line in file.readlines(): + them, us = map(lambda x: x.strip(), line.split()) + our_game = list(filter(lambda x: x["id"] == us, SCORES))[0] + their_game = list(filter(lambda x: x["id"] == them, SCORES))[0] + + match our_game["strategy"]: + case "lose": + strategy = list( + filter(lambda x: x["id"] == their_game["wins_over"], SCORES) + ) + total_score += strategy[0]["points"] + case "win": + strategy = list(filter(lambda x: x["wins_over"] == them, SCORES)) + total_score += 6 + strategy[0]["points"] + case _: + total_score += 3 + their_game["points"] + + print("part 2:", total_score)