From c26d932a610e31b8338510cfa1e232a81d35a470 Mon Sep 17 00:00:00 2001 From: Jonathan Chan Date: Fri, 2 Dec 2022 01:17:50 -0500 Subject: [PATCH] Day 2 --- input/02.txt | 2500 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/02.rkt | 33 + 2 files changed, 2533 insertions(+) create mode 100644 input/02.txt create mode 100644 src/02.rkt diff --git a/input/02.txt b/input/02.txt new file mode 100644 index 0000000..9d27e74 --- /dev/null +++ b/input/02.txt @@ -0,0 +1,2500 @@ +B Y +A X +C Z +A Z +B Y +B Y +A X +C Z +B Y +B Y +C Z +C X +B Y +C Z +B Y +C Z +A Z +A Z +A X +B Y +A X +C Z +C Y +C Z +C Z +C Z +A X +A X +B Y +A Z +B Z +B Y +A X +A X +C Z +B Y +B Y +B Z +A Z +A X +C Z +B Z +A Z +C Z +C Z +C Z +C Z +C Z +C Z +B X +A Z +A Z +C Z +C Z +C Z +A Y +C Z +B Y +C Z +C Z +C Z +B Y +B Z +A X +A X +C Z +B Y +B Y +B Z +A X +A X +C Z +B Y +C Z +A X +C Z +A X +C X +A Y +A Y +B Y +A Y +C Z +B Y +C Z +C Z +A X +C Z +A Z +C Z +A X +C Z +B Y +B Y +C Z +B Z +C Y +C Z +B Y +C Z +C Z +B X +A X +C Z +C Z +B Y +C Z +B Y +A Z +B Y +B Z +A Z +C Z +C Z +C Z +A Z +C Z +A X +A X +A Z +C Z +A X +A Z +C Z +A Z +A Y +B Y +A Z +B X +A X +C Z +C Z +B Y +C Y +B Y +B Z +B Y +B Y +C Z +C Z +C Z +C Z +A Y +C Z +B Z +A X +B Y +A Y +C Z +C Z +C Z +C Z +C Z +B Y +C Z +B Y +C Z +B Y +C Z +C X +A Y +A X +C Y +B Y +A Z +C Z +C Z +B Y +B Y +A X +B Y +A Y +A X +A X +B Y +A X +A X +B Y +C Z +C Z +B Y +C Z +A Z +C Z +B Z +C Z +A Y +C Z +B Z +C Z +A Y +A Y +C Z +A X +B Y +C Z +A X +B Y +B Y +A X +A X +C Z +B Y +C Z +B Z +C Z +A X +C Z +B Y +B Y +A X +B Z +C Z +B Z +B Y +B Y +A Y +B Z +A Z +C Z +C Z +A X +A X +A X +C Z +B Y +A X +A Y +C Z +A X +B Y +A Y +A Y +C Z +C Z +C Z +A Z +B Z +C Z +B Y +C Z +C Z +A Y +A X +C Z +B Y +C Z +C Z +B Y +B Y +A Y +C Z +B Y +B Y +A Z +C Z +C Z +C Z +C Z +B Z +C Z +B Y +A X +C Z +B Z +A Z +A X +C Z +A X +A X +B Y +C Z +C Z +A X +C Z +A Y +C Z +C Z +A X +B Y +C Z +B Z +B Y +C Z +A Z +C Z +C Z +A Y +A Z +C Z +C Z +B Z +C Z +B Y +C Z +C Z +A X +C Z +C Z +B Z +C Z +B Z +A X +B Y +C Z +C Z +C Z +C Z +C Z +A Z +A Y +A X +A X +C Z +B X +A Z +A X +C Z +B Z +C Z +B Y +A Z +C Z +B Y +C Z +C Y +A Y +C Z +B Y +B Y +C Z +A X +C Z +A X +C X +A X +B X +A X +C Z +C Z +C Z +B Y +B Y +C Z +B Z +C Z +B Y +A X +C X +C Z +B Y +A Z +A X +B Y +B Y +C Z +C Z +C Z +B Y +A X +A X +B Y +A X +A Y +C Z +B Y +A X +A Y +B Y +A X +A X +C Z +C Z +C Z +C Z +C Z +A X +A X +B Z +A Y +C Z +A X +C Z +B Y +C Z +A Z +C Z +C Z +A Y +B Z +C Z +A X +B Y +B Y +C Z +A Y +C Z +C Z +C Z +C Z +C Z +B Y +A X +A X +B Y +C Z +C Z +A Z +C Z +C Z +C Z +A Y +B Z +B Y +B Y +C Z +A X +A Y +C Z +A X +A Y +A X +C Z +A Y +B Z +B Y +B Z +C Z +C Z +C Z +B Z +B Z +C Z +C Z +C Z +C Z +B Y +B Z +A Y +A Y +B Z +B X +A Z +A X +C Z +A X +A Y +A X +A X +A X +C Z +C Z +C Z +A X +C Z +C Z +B Y +A X +C Z +A X +A Y +A X +C Z +A Y +C Z +B Y +A X +A Y +A Z +C Z +B Y +B Y +B Z +A X +A X +B Y +C Z +A X +B Y +C Z +C Z +C Z +A X +A Y +A Z +C Z +B Y +C Z +A X +A Z +A Z +B Y +B Y +A X +B Y +C Z +B Z +C Z +B Y +A Z +C Z +A Y +A X +A Z +B Y +A X +A Z +C Z +A Z +C Z +C Z +A X +C Z +A X +C Z +A X +C Z +B Y +C Z +A X +B Y +A Y +C X +A Y +A Z +A X +A Z +B Y +A X +C Z +A Y +B Y +B Y +C Z +B Y +C Z +B Y +B Z +C Z +C Z +B Y +A X +C Z +B Y +C Z +C Z +C Z +C Z +C Z +A X +A X +A Z +A Z +C Z +A Y +B Y +A Y +A Y +B Y +C X +A Y +C Z +C Z +C Z +A Y +A Y +A Y +C Z +A X +B Y +A X +B X +A Y +A Y +A X +B Z +B Y +C Z +B Y +C Z +B Y +C Z +A Z +C Z +A X +B Y +A X +C Z +B Z +C Z +B Y +C Z +C Z +C Z +A X +A X +B Y +B Z +A Z +A X +A X +C Z +A X +A X +C X +C X +C Z +B Y +B Z +C Z +A X +B Y +B Y +A Z +C Z +C Y +A X +B Y +B Y +C Y +A X +A X +A X +A X +A Z +B Y +A Z +C Z +C Z +B Y +B Z +B Y +A Y +C Z +C Z +B Y +A Y +C Z +A X +C Z +C Z +A X +B Y +C Z +C Z +A X +A Z +C Z +A Z +C Z +B Z +A X +A Y +B Y +A X +A Y +A Z +A Y +A X +A Y +C Z +A X +C Z +C Z +A X +A Y +A X +C Z +A Z +C Z +C Z +C Z +A X +B Y +A X +C Z +C Z +C Z +C Z +A X +C Z +C Z +B Y +A Y +A X +A X +C Z +C Z +A X +C Z +C Z +B Y +C Z +A X +C Z +C Z +A Y +A X +C Z +A Y +C Z +A X +B Z +B Y +A X +B Y +C Z +A X +C Z +C Z +A X +C Z +B X +C Z +C Z +A Y +C Z +A Y +B X +C Z +B Y +C Z +A Z +C Z +A X +C Z +C Z +C Z +C Z +A X +B X +C Z +C Z +B Y +A Z +A Y +C Z +A X +A Z +A X +A X +B Y +A X +C Z +A X +A X +B Y +A X +B Z +C Z +A Z +A Y +A X +B Y +A X +A Z +A X +B Y +B Z +B Y +C Z +B Y +A X +A Y +C Z +A X +B Z +C Z +C Z +A X +A X +A Y +C Z +C Z +C Z +A Y +B Y +A X +C Z +B Y +B Y +A X +A X +B Y +C Z +B Y +A X +A Z +C Z +C Z +C Z +C Z +B Z +C Z +A Z +C Z +A Y +B Y +A Y +C X +C Z +C Z +A Y +A X +B Y +C Z +A X +C Z +A X +A Y +A Y +B Z +C Y +B Y +C Z +B Y +A X +C Z +C Z +C Z +C Z +B Y +A X +B Y +A Y +C Z +B Y +A Z +B Z +C Z +C Z +C Z +C Z +A Y +A X +C Z +A X +C Z +C Z +C Z +C Z +C Z +B X +C Z +B Z +A X +A X +A Y +A X +A Z +B Y +A Y +C Z +C Z +C Z +C Z +C X +A Y +C Z +C Z +B Y +A X +C Y +B Y +C Z +C Z +C Z +B X +A X +C Z +A X +C Z +C Z +C Z +C Y +A X +C Z +A Z +C Z +C Z +B Y +A X +A X +A Z +A Y +C Z +C Z +C Z +C Z +C Z +C Z +C Z +B Y +A Y +A X +C Z +C Z +A X +A X +C Z +C Z +B Y +A X +A X +C Z +C Z +C Z +B Y +A Y +B Z +A Y +C Z +A X +C Z +C Z +B Y +A Y +A X +B Z +A X +C Z +C Z +C Z +C Z +B Z +C Z +B Y +C Z +C Z +C Z +B Y +C Z +C Y +B Z +B Z +A Y +C Z +C Z +B Z +B Y +C Z +B Y +C Z +C Z +B Y +C Z +C Z +C Z +A Y +A X +B Y +C Z +C Z +C Z +B Y +C Z +A Y +A X +A Z +A Y +C Z +C Z +C Z +B Z +C Z +B Y +C Z +B Y +A Y +C Z +C Z +A Z +B Y +A X +A X +B Z +A X +C Z +C Z +C Z +A X +B Z +C Z +A X +C Z +C Z +C Z +C Z +C Z +C Z +A Y +C Z +A Z +A X +B Y +C Z +C Z +A X +A Y +C Z +B Y +A X +C Z +C Z +A X +A Y +A X +B Z +C Z +A X +C Z +A X +A Z +B Y +C Z +C Z +C X +B Z +B X +B Y +A Z +C Z +A X +B Z +A X +B Y +C Z +B Z +A Z +A Z +C Z +C Z +C Z +C Z +B Y +B Y +A Y +A X +A X +B Y +A Z +A X +C Z +B Z +A X +A X +B Y +A X +C Z +A X +C Z +C Z +C Z +C Z +A X +A X +A Z +C Z +A X +B Z +C Z +B Y +C Z +C Z +A Y +C Z +B Z +C Z +C Z +B Y +C Z +C Z +B Y +A X +A X +C Z +C Z +C Z +A X +C Z +C Z +B Y +C Z +B Z +C Z +A X +C Z +A X +C Z +A Y +C Z +C Z +A X +B Y +C Z +C Z +C Z +A X +B Y +C Z +A X +B Z +A X +B Z +C Z +A X +C Z +B Y +A Z +B X +A Y +C Z +C Z +B X +A Y +A X +C Z +A X +C Z +B X +A X +B Y +A Z +A X +C Z +A Y +C Z +A X +C Z +C Z +C Z +C Z +A Z +C Z +C Z +B Y +A X +B Y +C Z +B Y +A X +C Z +C Z +A X +A X +B Y +C Z +B Y +C Z +C Z +A Z +C Z +C Z +C Z +A Y +A Z +C Z +C Z +C Z +C Z +A X +C Z +A X +A X +B Z +C Z +C Z +C Z +B Z +A X +C Z +A Y +B Y +C Z +A Y +C Z +C Z +A X +A X +B Y +A Z +A Y +A X +B X +B Y +B Z +B Y +A X +C Z +C Z +B Z +B Z +B Z +C Z +C Z +B Y +B Y +B Y +C Z +B Y +A X +A Z +B Z +A X +B Z +A X +C Z +B Y +B X +A X +C Z +A X +C Z +C Z +C Z +B X +B Y +A Y +A X +A X +A Y +C Z +C Z +B Y +C Z +B Z +A X +C Z +C Z +C Z +A X +A Y +C Z +B Z +A X +A Y +A Z +C Z +B Y +B Z +A X +C Z +A X +A X +A Z +C Z +C Z +B Y +A X +C Z +A Y +A Z +A X +A X +C Z +A Y +B Y +C Z +A Z +C Z +B Y +A X +A X +A X +C Y +C Z +A Y +B Z +C X +A X +A X +A X +A X +B Z +B Y +C Z +B Y +A X +B Y +C Z +B Y +C Z +C Z +A X +B Y +A Y +B X +A X +B X +C Z +A Z +A X +B Y +B Y +C Z +A X +A X +B Y +C Z +A X +C Z +A X +A Z +A Z +C Z +A Z +C Z +C Z +C Z +C Z +A Z +C Y +C Z +C Z +A Z +A Y +A X +B Z +C Z +C Z +C Z +A Y +C Z +C Z +C Z +C Z +A Z +B Z +A X +C Z +C Z +A Y +B Y +A X +C Z +A X +B Y +A X +A X +A Z +B Y +C Z +B X +C X +A X +A X +A X +C Z +C Z +A X +B Y +A Z +B Y +A X +A Y +C Z +B Y +C Z +B Y +A Y +B Y +A Y +A X +C Z +C Z +A X +B Y +A X +C Z +C Z +A Y +B Y +B Y +A Z +B Y +C Z +C Z +C Z +B Y +A X +B Y +A X +C Z +C Z +C Z +A X +C Z +C Z +B Y +C Z +B Z +B Y +A X +B Y +A Z +B Y +A X +B X +C Z +A Z +B Y +C Z +B Y +C Z +C Z +C Z +C Z +B X +A X +B Y +B Y +A X +C Z +A X +B Z +B Z +B Z +A X +C X +A X +A X +A X +B Y +B Y +C Z +C Z +A X +C Z +B Y +A X +C Z +A X +C Z +A X +B Y +C Z +C Z +A Y +B Y +C Z +A Z +C Z +A X +C Z +C Z +A Z +A Y +C Z +A X +B Y +B Z +C Z +A Y +A Y +C Z +C Z +B Z +A Z +C Z +A X +C Z +A X +C Z +C Z +C Z +B Y +C Y +B Y +A Y +A X +C Z +B Y +C Z +C Z +C Z +A Z +C X +A Y +C Z +A Y +A Y +C Z +A Z +C Z +C Z +C Z +C Z +C Z +B Y +A Y +B Y +A Z +B Y +A X +A X +B Y +A Z +B Y +C Z +B Z +A X +C Z +A Y +A Y +C Z +A X +A X +C Z +C Z +C Z +B Y +A X +C Z +B Y +C Z +B X +C Z +A Y +C Z +A X +C Z +A X +C Z +C Z +B Y +C Z +B Z +C Z +A Y +A X +A Z +C Z +C Z +C Z +C Z +C Z +A Z +B Y +B Y +B Y +C Z +C Z +C X +C Z +A X +B Y +C Z +C Z +A X +B Y +C Z +C Z +C Z +C Z +C Z +C Z +A X +B Z +C Z +C Z +C Z +A X +B Z +C Z +A X +C Z +A Y +B Y +C Z +B Z +B Y +C Z +B X +C Z +B Y +B Y +B Y +A X +A X +C Z +A Z +C Z +B Y +B Z +C Z +C Z +B Z +B Y +A Z +B Y +A X +A X +C Z +C Z +C Z +B Y +A X +C Z +C Z +A Y +C Z +B Y +C Z +C Z +C Z +C Z +C Z +C Z +B Y +B Y +C Z +A Z +A X +B Y +C Z +B Y +A X +A Z +C Z +B Y +A Z +C Z +B Y +A Z +A X +B Z +A X +C Z +B Y +C Z +A Y +C Y +A X +A Y +C Z +C Z +B Y +C Z +B Y +A Z +C Z +C Z +A X +C Z +B Z +A Y +B Z +A Z +A X +B Y +A Z +A Y +C Z +C Z +B Y +A X +B Y +C Z +A X +B Y +B Y +C Z +A Z +A X +C Z +B X +C Z +C Z +C Z +C Y +A Z +A X +C Z +C Z +A X +B Y +C Z +B Y +C Z +B Z +A Z +C Z +B Y +A X +C Z +C Z +B Z +C Z +A Z +B Y +B Z +C Z +C Z +A X +C Y +B Y +C Z +A X +C Z +C Z +B Y +B Z +C Z +C Z +A Y +A X +C Z +A X +B Z +B Y +A Z +B Z +C X +A X +C Z +C Z +C Z +A X +B Z +C Z +C Z +C Z +B Y +C Z +A X +C Z +C Z +B Y +C Z +A X +C Z +C Z +C Z +A X +A X +B Y +C Z +C Z +B Y +B Z +B Y +C Z +A X +A X +B Y +A X +B Y +C Z +A X +C Z +C Z +B Z +A X +B Y +C Z +C Z +C Z +C Z +A Z +C Z +A X +B Y +A Y +A Y +C Z +C Z +C Z +B Y +A Z +A X +B Y +C Z +A X +C Z +A X +C Z +A X +C Z +C Z +B Y +A Y +C Z +B Y +B Y +A X +C Z +A Y +A Z +C Z +C Z +C Z +A Y +B Y +C Z +C Z +B Z +C Z +B Z +B Y +A X +A X +C Z +B Z +C Z +C Z +A X +A X +B Z +A X +C Z +C Z +B Y +A X +C Z +A X +B Y +C X +A Z +B Y +C Z +A X +B Y +C Z +A X +B Y +C Z +B X +C Z +A Y +C Z +A X +C X +B Z +C Z +B Y +B Y +B Y +A Y +A X +C Z +C Z +A Y +B Y +A X +C Z +A X +C Z +C Z +A X +C Z +A X +C Z +B Y +C Z +A X +A Z +C X +B Y +C Z +C Z +B Z +A X +A X +B Y +C Z +A Y +B Y +C Z +A X +A Z +A X +B Y +A X +B Y +C Z +C Z +B Y +A X +B Y +B Z +C Z +B Z +A X +C Z +C Z +A Y +C Z +A X +C Z +B Y +C Z +C Z +C Y +C Z +C Z +A Y +C Z +C Z +A Z +A X +B Z +C Z +A Y +A X +B Z +C Z +C Z +B Y +B Z +A X +A X +C Z +B Y +A Y +C Z +A Z +A X +C Z +A X +C Z +C Z +A Z +C Z +C Z +C Z +A Y +B Y +A X +B Z +B Y +C Z +C Z +C Z +C Z +C Z +C Z +C Z +A Z +B Z +B X +A X +A Z +A X +A X +B Y +C Z +C Z +A X +B Y +A Y +C Z +B Z +C Z +A X +B Y +C Z +B Y +A Z +C Z +A Y +C Z +A X +C Z +A Z +B Y +A Y +A X +A X +A Z +C Z +C Z +C Y +C Z +A Y +A X +B Y +A Z +B Z +B Z +C Z +C Z +C Z +C Z +A X +A Y +B Y +C Z +B Y +C Z +A X +B Y +C Z +C Z +A Z +A X +B Y +C Z +A Y +C Z +C Z +C Z +A X +B Y +A X +B Y +C Z +C Z +B Y +C Z +A X +A X +C Z +B Y +B Z +A X +A X +A X +C Z +C Z +B Y +A X +C Z +A X +A Z +C Z +C Z +C Z +C Z +A Z +A X +B X +B Z +A Y +C Z +C Y +B Y +C Z +A Y +A X +B Z +B Y +C Z +B Y +C Z +A X +A Z +A X +C Z +B Y +B Y +B Y +A Z +C Z +C Z +B Y +C Z +B Y +A X +B Y +A X +B Y +C Z +C Z +B Y +A X +A Y +B Z +C Z +C Z +A X +B Y +A X +A X +A Y +B X +A X +A X +C Z +B Z +A X +C Z +A Y +A Z +C Z +A Z +A X +B Y +A X +C X +C Z +B Y +C Z +A X +A X +C Z +A X +B Y +A X +C Z +B Z +C Z +A X +C X +C Z +C Z +A X +C Z +A Y +C Z +A X +B Y +B Y +B Y +B Y +B Y +B Y +B Y +B Y +A Y +A Z +B Y +C Z +C Z +B Y +A Z +A X +A Y +A X +C Z +A Y +A Z +A Y +B Y +C Z +C Z +A Y +C Z +A X +B Y +C Z +A X +C Z +A X +B Y +C Z +C Z +A Z +A X +C Z +B Y +A Z +C Z +A X +C Z +B Y +B Y +C Z +C Z +C Z +C Z +B Z +C Z +C Z +C Z +C Z +C Z +B Y +B Y +A X +C Z +C Z +A Z +C Z +A X +C Z +C Z +A X +B Y +A X +C Z +B Y +B Y +A Y +A Y +A X +A Y +A Y +C Z +C Z +A Y +C Z +A Y +B Y +C Z +C Z +C Z +B Y +B Y +B Y +A X +C Z +B Y +C Z +C Z +C Z +C Z +A X +B Y +A X +C Z +A X +C Y +A Y +B Y +C Z +C Z +C Z +C Z +B Y +C Z +C Z +B Y +C Z +A X +A X +B Y +B X +C Z +B Y +A X +B Z +A Z +C Z +C Z +C Z +C Z +B Y +A Z +C Z +C Z +C Z +C Z +A X +A X +B Y +A Z +C Z +C Z +C Z +C Z +A Z +B Y +A X +B Y +C Z +C Z +B Z +C Z +A Y +C Z +A Y +B Y +C Z +A X +C Z +A X +B Z +B Y +B Y +A X +B X +A X +C Z +B Y +A X +A Z +C Z +C Z +A Z +C Z +C Z +B Y +C Y +C Z +A Z +A Z +C Z +B X +C Z +C Z +B Y +C Z +B Y +B Y +A X +A Y +B Y +A X +B Z +C Z +A Z +A X +A X +A Z +A Z +B Z +A X +B Y +C Z +B Y +A X +C Z +B Z +A Y +B Z +C Z +A X +B Z +A X +A Y +C Z +C Z +C Z +C Z +C Z +A Y +A Y +A X +B Y +C Z +A X +B Y +A X +B Y +C Z +A Z +C Z +C Z +C Z +C Z +C Z +B Y +B Z +C Z +A X +A Z +A X +A X +C Z +C Z +C Z +C Z +B Y +C Z +A X +C Z +C Z +C Z +C Z +C Z +B Y +A Z +A X +A Z +C Z +C Z +C Z +C Z +B X +C Z +C Z +A X +C Z +A Z +B Z +B Y +B Z +A Y +B Y +B Y +C Z +A Y +A Y +A Y +C Z +C Z +B Z +A X +C Z +A X +A X +A X +C Z +C Z +A Z +A X +A Y +C Z +C Z +A X +B Z +C Z +A X +C Z +A Z +A X +C Z +C Z +A X +A Z +B Y +A X +B Y +C Z +C Z +A X +B Z +C Z +B Y +C Z +A Z +C Z +A X +B Y +C Z +C Z +A Y +C X +A Y +A Y +C Z +C Z +A X +A Z +B Y +C Z +B Y +C Z +A Y +C Z +C Z +C Z +A Z +C Z +C Z +B Y +A Y +C Z +C Z +B Y +A X +C Z +B Y +C Z +B Y +C Z +B Y +A X +A Y +B Y +C Z +B Z +A Y +C Z +A Y +A Z +C Z +B Y +C Z +C Z +B Y +A Y +A Y +C Z +C Z +A Y +C Z +C X +C Z +C Z +C Z +A X +C Z +B Y +B Y +C Z +C Y +B Z +C Z +B Y +A X +A X +B Y +C Z +A X +C Z +B Z +C Z +A X +B Y diff --git a/src/02.rkt b/src/02.rkt new file mode 100644 index 0000000..8ef3123 --- /dev/null +++ b/src/02.rkt @@ -0,0 +1,33 @@ +#lang racket + +(require "../lib.rkt") + +(define input (map string-words (problem-input 2))) + +(define part1 + (for/sum ([round input]) + (match round + ['("A" "X") (+ 1 3)] + ['("B" "X") (+ 1 0)] + ['("C" "X") (+ 1 6)] + ['("A" "Y") (+ 2 6)] + ['("B" "Y") (+ 2 3)] + ['("C" "Y") (+ 2 0)] + ['("A" "Z") (+ 3 0)] + ['("B" "Z") (+ 3 6)] + ['("C" "Z") (+ 3 3)]))) + +(define part2 + (for/sum ([round input]) + (match round + ['("A" "X") (+ 3 0)] + ['("B" "X") (+ 1 0)] + ['("C" "X") (+ 2 0)] + ['("A" "Y") (+ 1 3)] + ['("B" "Y") (+ 2 3)] + ['("C" "Y") (+ 3 3)] + ['("A" "Z") (+ 2 6)] + ['("B" "Z") (+ 3 6)] + ['("C" "Z") (+ 1 6)]))) + +(show-solution part1 part2) \ No newline at end of file