From ca219ff321c7a5dcf0d63b55b4021bb2c40f0711 Mon Sep 17 00:00:00 2001 From: Eric Wagoner Date: Fri, 2 Dec 2022 00:38:17 -0500 Subject: [PATCH] Solutions to day 2 --- 02/code.js | 101 ++ 02/input.txt | 2500 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 2601 insertions(+) create mode 100644 02/code.js create mode 100644 02/input.txt diff --git a/02/code.js b/02/code.js new file mode 100644 index 0000000..7c16ba0 --- /dev/null +++ b/02/code.js @@ -0,0 +1,101 @@ +const fs = require('fs'); + +const inputArray = fs.readFileSync('input.txt').toString().split("\n"); + +// Part One +let totalScore = 0; + +for (i in inputArray) { + const value = (inputArray[i]); + const throws = value.split(" "); + const result = getResult(throws[0], throws[1]); + const score = getScore(result, throws[1]); + totalScore += score; +} + +console.log(totalScore); + + +// Part Two + +totalScore = 0; + +for (i in inputArray) { + const value = (inputArray[i]); + const throws = value.split(" "); + const result = getThrownResult(throws[1]); + const thrownThrow = getThrownThrow(throws[0], throws[1]); + const score = result + thrownThrow; + totalScore += score; +} + +console.log(totalScore); + + + +// functions + +function getResult(them, me) { + let result; + + if (them === "A") { + if (me === "X") { + result = 1; + } else { + result = me === "Y" ? 2 : 0; + } + } + if (them === "B") { + if (me === "Y") { + result = 1; + } else { + result = me === "Z" ? 2 : 0; + } + } + if (them === "C") { + if (me === "Z") { + result = 1; + } else { + result = me === "X" ? 2 : 0; + } + } + return result * 3; +} + +function getScore(result, me) { + const options = ["X", "Y", "Z"]; + const value = options.indexOf(me) + 1; + return value + result; +} + +function getThrownResult(thrown) { + const results = ["X", "Y", "Z"]; + return results.indexOf(thrown) * 3; +} + +function getThrownThrow(them, me) { + let result; + + if (them === "A") { + if (me === "Y") { + result = 1; + } else { + result = me === "X" ? 3 : 2; + } + } + if (them === "B") { + if (me === "Y") { + result = 2; + } else { + result = me === "X" ? 1 : 3; + } + } + if (them === "C") { + if (me === "Y") { + result = 3; + } else { + result = me === "X" ? 2 : 1; + } + } + return result; +} \ No newline at end of file diff --git a/02/input.txt b/02/input.txt new file mode 100644 index 0000000..42fe8f8 --- /dev/null +++ b/02/input.txt @@ -0,0 +1,2500 @@ +B Z +A X +C X +C X +C Z +C X +C X +A Z +C X +B Z +B Z +C X +A X +C X +C X +C X +C Y +C X +C Z +C X +C X +C X +C X +C X +C Z +C X +C X +A X +C X +B Y +A X +B X +A Z +C X +B Y +A X +C Z +C X +C Z +A X +A Y +B Z +A Z +C X +A Z +A Z +A Y +C Y +A Y +A Z +C X +A Y +B Y +A Z +B Y +C Z +A X +C X +C Z +B Z +C X +B Y +C X +A Z +C X +A X +C X +C X +A Z +B Z +C X +C X +C Z +C X +B X +C X +A Z +A X +A Y +A Y +A Z +C X +C Z +C X +B Y +C X +C X +A X +A X +C Z +C X +B X +C Z +C X +C X +C X +B Z +B Y +A Z +C X +A Z +C X +C Z +A Z +C X +A X +C X +C Z +C Z +C X +C Z +A Y +C X +A X +A Z +A X +C Y +B X +C X +A X +A Y +A X +B Y +A X +C X +B Y +A Z +C X +B X +C X +A Y +C Z +C X +C Z +C X +A Y +A Z +C X +A Z +B Y +C X +A Z +C X +C Z +B Z +C X +C Z +C X +C Z +C X +A Y +C X +C X +A Z +C Z +C X +A X +C X +C X +B Y +C X +C X +C X +C X +C X +A Y +C Z +C X +C X +C Z +B X +C X +C X +C Z +B Y +B Y +C X +C X +A Z +C Z +C X +C Z +C X +A Y +A X +A X +A Y +C X +C X +C X +A Z +B Z +C Z +A Y +A Y +C X +C X +B Y +C X +C X +C X +A Z +B Y +B Y +C X +C Y +C X +C Z +B Y +C X +C X +C Z +A X +B Y +C X +A Z +C X +A Z +C X +A Z +C X +C Z +C X +A Z +C X +A X +C Z +A Z +A Y +C X +C Z +B Y +A Z +C X +B Y +B X +A Z +C X +C Y +A X +C Z +A X +C Z +C Z +C Z +A Z +C X +C X +A Z +C X +A X +C X +B X +C X +C X +C Z +C X +C X +C Z +C X +A Y +C Z +C Z +A X +A Z +B X +C X +C X +B X +C Y +C X +A Y +C Z +A X +C X +A Y +A Z +C X +A Y +A Z +A Z +C Z +C X +A Y +C X +A X +C X +C X +C X +A Z +C X +C X +A Z +A X +C X +B Y +B X +C X +C X +A Y +A Z +B Z +C Z +A Z +A X +C Z +A X +C X +B X +C X +B X +C X +A X +C Z +C X +A Z +A Y +C X +C Z +C X +A X +C X +B Y +A Z +C X +C Z +A X +C X +A Z +C X +B Y +C X +C Y +C Y +B Z +C Z +A X +B Z +C X +C X +A Z +A X +C X +A X +B Z +A Z +B Y +B Y +C X +C X +A Z +A Z +B Z +A Z +A Z +A Z +B Y +C Z +A Y +A X +C X +C X +C X +C X +C Z +B Y +C X +A Z +B Y +B Y +C X +C X +A X +C X +C Z +C X +A X +A Z +C Z +C Z +B Z +B Y +C Z +C Z +A X +B Y +C X +C Z +B Y +C X +C X +C X +C X +B Z +C X +B X +C Y +C Z +A Z +C X +C X +C X +A Z +C X +B Z +C Z +C Z +C X +C Z +A Z +C X +C X +C X +C Z +C Z +C X +C X +C Z +C X +C Z +C X +A Z +C X +B Z +B X +B Z +A Z +A Z +B Y +C Y +C X +C X +C X +C X +A X +C X +A X +C X +C X +A Z +C X +C X +B Y +C Z +C X +C X +A Y +A X +C Z +C Z +C X +C X +C X +B X +C Z +C X +C X +C X +B X +A Y +B Z +C X +B Y +C X +C X +C X +B X +B Y +A Z +A Z +A Z +C X +A Z +C Z +B Z +C X +A Z +C X +C X +C X +A Y +B Y +C X +B Y +C Z +C X +B X +A Z +C X +A X +C X +C Z +C Z +B Y +C Z +C X +C X +B X +C X +C X +C X +C X +A Z +B Y +A X +C X +A Y +B X +A Z +A Z +C X +A Y +C Z +A Z +A X +A Y +C X +C Z +C Z +C Z +C X +B Y +C X +A Y +C X +A Z +C X +C Z +C X +B X +C Z +C Y +C X +B Z +A X +B X +C X +B Y +C Z +C Z +C Z +C X +A Z +C Z +C X +C X +C X +B Z +C X +C X +A Z +C X +A Z +C Z +A Z +A Z +A Z +C X +A X +C X +A Z +A Y +C X +A Z +C X +B Y +A X +C Z +A Z +C Z +A Y +C X +A Z +C Z +C X +C X +C X +C Y +C X +A Y +A Z +A X +C Z +C Z +A Y +C X +C X +B Y +B Z +C X +B Y +C Z +C Z +C X +C Z +B Y +C Z +B Y +C Z +B Y +C X +A X +A X +C X +A Z +A Z +C X +C X +B Y +A Z +C Z +A X +C Z +C X +C Y +A Z +A Z +C X +C X +A X +C X +C Z +C X +B Z +C X +A Z +A Z +C X +A Z +A X +A Z +C Y +B Y +C X +C X +C Z +C Z +C Z +C Z +C X +A X +C X +B Y +C X +B Y +B Y +B X +C X +C X +C X +C X +C X +C Z +A X +C X +C X +A Z +A Z +C X +A Z +C X +C Z +C X +B Z +A Z +C X +C X +C X +C Z +A Z +B Y +C X +C X +C Z +C X +C X +C X +A Z +B Z +A X +C Z +C X +C X +A X +C X +C X +C X +A Z +A Y +C Y +C Z +C X +C Z +C Z +A Z +C X +C X +B X +C Z +A Y +C X +C X +C X +C Z +C X +C Z +C X +C X +C X +B X +C X +A Z +B X +B Y +C X +A Z +A Z +C X +A Y +C X +C Z +A Z +B Z +A Z +B Y +A X +A Y +B X +C X +B Z +C Z +B Y +C X +A Z +C Z +C Z +C Z +B X +C X +A X +B Y +C X +C X +A X +B Z +B X +C X +C X +A X +C X +C X +C X +C X +C Z +C X +A Z +B Y +A Y +B Y +A X +C X +A Y +A Z +C X +C X +B Y +C X +B Y +C Z +C X +C X +B Y +C X +A Z +C Z +C X +C X +C Z +C X +C X +B Y +B Y +C X +C X +C X +C X +C X +A Z +C X +C X +B Z +B Y +A Z +C X +C X +C X +A Y +C X +A Y +A X +A Z +B X +C X +A X +B X +A Z +C Z +C X +A Z +A X +C X +C X +C X +C X +B Z +A X +A X +C Z +C X +C X +A Y +C Z +C X +B Y +C X +B Y +C X +C X +B X +C X +A Z +C Z +C X +C X +C X +C X +A Z +A Y +C Z +C X +B X +A Y +A X +A X +B X +C X +C X +A X +C X +C Z +A X +C Z +C X +B Y +C X +C X +C Z +C X +B Z +C X +C X +C Z +B Z +C X +C Z +A Z +C X +B X +C X +C X +C X +C X +C X +C X +A Z +A Z +B Z +A Y +A Z +B X +A Y +B Y +C X +C X +C Z +C X +C X +C X +A Y +C X +C X +B X +C Z +C X +C X +C X +C X +B Y +A Y +C X +A Z +C X +C X +C Z +C X +C Z +C X +C X +B Y +A Z +B X +A X +C X +C Z +C X +C X +C X +C X +C X +B Z +C X +C X +C Z +B Y +C X +B Y +C X +C X +C X +C X +C Z +C X +A Y +C X +C Z +A Y +A X +B Z +C Z +C X +A X +C X +A Y +C X +C X +B X +C X +B X +B Z +A Z +A X +C X +A Z +C X +C X +C X +C X +A Y +C Y +A X +C Z +A Y +C X +A Z +C X +C X +C X +A Y +C X +C X +C X +C X +A X +C X +A Z +A Z +A X +A Z +C Z +C X +B Y +A Y +C X +C X +C X +C X +A Z +C X +A Z +B X +B Y +C X +A Z +A X +C X +C Z +C X +C X +C Z +C X +C Z +B X +C X +C X +C X +A X +A Z +C Z +C Y +C X +A Y +B Y +C X +B Y +C X +C X +C X +A Z +C X +B Z +A Y +C X +C X +B Y +A X +C Z +C X +B Y +C Z +A Y +B Y +B Z +C X +C X +A Z +C X +C Z +C Y +A X +B Y +C Y +A X +C Z +C Y +C X +A Y +B Z +C X +A Z +C X +B Y +C X +C Y +C X +C Z +C X +A Z +C Z +C X +C X +C X +B X +A Z +C X +C X +C Z +C Y +C Z +C X +C X +C Z +A X +C Z +C Y +B Y +C X +B Y +C Z +C X +C X +C X +A X +B X +C X +B Z +A Y +C X +C Z +B Y +C X +C X +C X +C Z +C X +C X +C X +C X +A Y +C X +B X +C Y +A X +B Y +A Z +C X +C X +A Z +C Z +C X +C Z +A Y +A X +C Z +A Z +C Y +A Z +B Y +C X +A Z +C X +C Z +C X +C X +C X +C X +C X +C X +C X +C X +C X +C X +C X +C X +C Z +B X +A Y +C X +C X +C Z +A Y +A Z +A Z +B Y +C X +C Z +C X +C Z +C X +C X +C X +C X +A Z +A X +A Z +C X +A Y +B Y +C X +C Y +A Z +B X +C Z +A X +C X +C X +C X +C X +C X +A Y +A Z +C X +C X +A X +C Z +A Z +A X +C X +B Y +A X +C Z +B Y +C X +A Z +B Z +C X +C Z +C Z +B X +B Y +C Z +A X +C Z +C Z +A Y +A Y +C X +C X +C X +C X +A Y +C X +A Z +C X +C X +C X +C X +C X +B Y +C Z +C X +C X +C Z +C X +C X +B Z +C X +A Z +A Z +C X +A X +C X +C X +B Z +C X +A Z +C X +B X +C X +C Z +C X +A X +C X +B Y +A X +C Z +C Z +C X +C X +C Z +C X +C X +C X +A Z +A X +C X +B X +C Z +A Z +C Z +B Z +C X +A X +C X +C X +C Z +C X +A Y +A Y +C Z +C X +B Y +B Z +C X +B X +C X +C X +A Z +C Z +C Z +C X +B X +A Z +C X +C Z +A X +C Z +C Z +A Z +A Y +A Z +C X +C X +C X +A Z +A Y +C X +A Z +B Z +C X +B X +B X +C Z +C Z +C Z +C X +C X +C X +A Z +C X +C X +C X +C X +A Z +C X +C Y +A X +C X +C X +B Y +C X +C X +A X +C Z +C Z +C Z +A Z +C X +C X +C X +A Y +C Z +C X +C X +C X +C Y +C Z +C X +C X +C X +C X +A Z +C X +C X +A X +C X +A X +C X +C X +A Z +C X +C X +A Y +C Z +A X +A Y +C X +A Z +B Y +B Y +A X +C Z +C X +C X +C X +A X +A Z +B Y +C X +A Y +C X +C X +B Y +C X +C X +C X +B Y +C X +C Z +C X +C Z +A Y +B Y +C X +C Z +C X +B X +A Z +C Z +C Z +C Z +C X +B Z +C X +B X +C Y +C Z +C X +C X +C Z +A Z +B X +C X +C X +A Z +C X +A Z +C X +A Y +C X +C Z +A Z +A X +C X +B X +C X +C X +C X +C Y +B X +C X +B Y +C X +C Y +A Z +A Y +C X +A Z +C Z +A Y +B Y +C Z +A X +A X +B X +C X +C X +C Z +A X +B Y +A X +C Z +C X +C X +C X +A X +C X +C X +C X +C Y +C X +C X +C Z +C X +C X +C X +A Z +B X +A Z +C X +A X +C X +B Y +B Z +C X +C X +A Z +C X +A Y +B X +C X +C X +C Z +B Y +C X +A Y +C X +B Z +C X +A Z +C Z +C X +C X +C X +C Z +A X +B X +C Z +B Y +C Z +C X +B Y +A Z +C X +C X +C X +C X +C Z +A X +A Y +A Z +C X +C X +B Y +B Y +C X +A X +B Y +A Y +C X +C X +C X +A X +B X +B Y +A Z +C X +C X +C Z +A X +C X +A X +A Z +C X +A Z +C X +C Z +C Z +B Z +C X +B Y +C Z +C X +A Z +C X +C X +C X +C X +C X +C Y +C X +C X +A Z +C X +A X +A Y +B Y +C X +A Y +B X +C Z +C X +A Z +C X +C X +C X +A Z +B Z +C Z +B Z +C X +C X +C Y +C Z +C X +C Z +C X +C X +C X +B X +C X +C X +A Z +B Y +C Z +C Z +C X +A Z +B Y +A X +C X +A Z +C Z +C X +C X +A Z +A X +C Y +B Z +A X +C X +A Z +C X +C Z +A Z +C X +A Y +C X +C X +B Z +C X +C Z +A Z +A Z +C X +B Z +B X +A Z +A X +C X +C X +C X +C Z +C X +A X +C X +C X +B X +C Z +C X +C X +C Y +A Z +B Y +A Z +B Y +C X +A Z +C Z +C Y +B Z +A X +C X +C X +A Y +B Y +A X +C Z +A Z +C X +C X +B Y +B Y +C X +C X +C X +C X +C X +C Z +A X +A X +A X +C Z +C X +A X +C Z +B Z +C Z +C X +A X +A Y +C X +A Z +C X +C X +C Z +C Z +C X +A X +A X +C Y +A Y +C X +C Z +A X +A Y +A Z +B Y +C X +B Y +A Z +B X +C X +C Z +C X +B Z +A Z +A Z +C Z +C X +C X +C Y +C X +B X +C X +C Z +A X +C Y +A Z +C X +C X +A Z +A Z +A Z +C Z +A Z +C X +B X +B Y +C X +A Z +C Z +C X +C X +C X +A X +B Y +A Z +B Y +C X +B Z +A Z +C Z +C Z +C X +C X +C X +A Z +C X +A X +C Z +A Y +C X +A Y +C X +C Z +C X +C X +C X +B Y +C X +B Y +C Z +B Y +B Z +A Z +A X +C Z +C X +C X +B Y +B Y +A Z +C X +C Z +C Z +C Z +B Z +B Y +B X +C X +C X +C X +C Z +C X +C X +B Y +C X +C X +B Y +C X +C X +C X +C X +A Y +C X +C X +A Z +C Z +A Z +A Z +A Y +A Z +C Z +C X +C X +C X +C X +B Y +A Z +C X +C X +B Y +A Y +A Z +A Z +C Z +C X +C Y +C X +C X +B Y +C X +A X +B X +B Y +C Z +A X +C X +C X +A X +C X +A Y +A Y +C X +C X +B Y +C X +A Z +C Z +A X +C X +A Z +C X +C X +C X +C Z +A Z +B X +C X +A Z +C Z +B Y +C X +C X +B X +C X +C X +A Y +B Z +B Y +C X +C X +C X +C Z +C X +C X +C X +B Y +C X +C Z +C X +A Z +B Y +A X +B Y +A Z +C X +C X +A Z +B Y +C X +A Z +C X +A Z +A Z +B Z +A Y +A Z +C X +C Z +C X +A X +C X +B Y +B X +C Z +C X +B Y +C Z +C X +B Y +C X +C Y +C Z +A X +B Z +C X +C X +C Z +A Z +C X +C Z +A Z +C X +C X +C Z +C Z +B Y +A Z +C X +B X +B Y +C X +C X +C X +C X +B Z +A Z +C X +A Z +A X +A Z +C X +A X +C Z +A Z +C Z +B Z +B Y +C X +A X +C Z +C Z +A Y +B X +C X +C X +A X +C X +C X +C X +A Z +A Z +C X +A Z +C Z +C Z +C X +C Z +B Y +C X +C X +C X +A Z +A Z +C X +C X +C X +C Z +A Z +C X +A X +C Z +C X +B Y +C X +C Z +C X +C X +A X +A X +B Y +C Z +C X +C Z +A Z +C X +A X +A Z +C X +C X +C Y +C X +A Z +C X +A Z +B X +A X +A Z +A Z +A Z +A Y +A X +C X +C X +A Z +C Z +C X +C X +A Z +C Z +C X +C X +C X +C X +C X +C X +A Z +A Y +C Z +C X +A Z +A X +C X +C Z +A Z +C X +B Y +A Z +A Z +C X +A Z +C X +C X +A Z +C X +C Y +C X +C X +B Y +A Y +A Z +C X +C X +B Y +C X +C X +C Z +C Z +C X +B X +C X +C Z +A Y +C Z +B Y +C X +C X +B Y +A Z +B Y +C Z +A Y +A Z +B Y +A X +C X +C X +C Z +C X +A X +C X +C X +C Z +A Z +A Z +A Z +C Z +B X +A Z +A Z +C X +C X +C X +A Y +A Z +C Z +C X +C Z +C X +A Z +C Z +A Z +C X +B Y +C Z +C X +C X +A Z +C Z +C Z +B X +C Z +C Z +A Z +A Y +C X +C X +C Z +C X +A X +C X +C X +C X +C Z +B Y +B Y +C X +B Y +C X +C X +C X +A Z +B Z +C X +C X +C X +C X +C Z +C X +C X +C X +A Z +C X +B Y +C X +A Y +B Z +A Z +C X +B X +A Y +C Z +C X +C X +C X +C Z +A Y +C Y +C X +A Y +A Y +C X +C X +C X +C X +C Z +B X +C X +C X +C X +A Z +B X +C X +C X +B Y +C X +C X +C X +A Z +C X +C X +C X +B Y +C X +B Z +B X +C Z +C X +C Z +C X +B X +A Z +C X +C X +A Z +C Z +C X +A Z +B Z +C X +A X +A Z +C Z +C X +C X +B X +B X +C X +B X +C X +C Z +C X +C X +A Y +A X +A X +C Z +C Z +A Z +C Z +C X +C X +C X +C Z +A X +C Z +A X +C Z +C X +C X +A Y +C Z +A Z +A X +A Z +B Y +C X +C Z +C X +C X +A X +A X +C X +C X +C X +C X +A Z +C X +C Z +A X +C X +B Y +C Z +C X +A X +C X +C Z +C X +A X +A X +A X +C X +A Z +A X +C Z +C Z +C X +C Y +A Y +C X +C X +B X +C X +C X +C Z +B Y +A Z +C X +B Y +A Z +C Z +A Z +A Y +C Z +B Z +A X +B Z +C Z +A X +C Z +A Z +A Z +B Z +C X +C X +C X +C X +A X +C X +C X +C X +C X +C X +B Y +C X +C X +C X +B Z +A Y +A X +C Z +C X +A Y +B Y +C X +A Y +A Z +B X +A Z +C X +B Y +C X +A Z +A Z +C X +A Z +A Z +C X +A X +A Z +C Z +B Z +C X +A X +C Y +A Y +C X +A Z +C X +C X +C X +C Z +C X +C X +C X +A Y +B Z +A X +A Z +A Z +C X +A X +B X +C X +B X +C X +A Z +A X +C X +A X +A Y +A Y +A Z +A Z +C X +B X +C X +A Y +C Z +A Z +C X +C X +A Y +A Z +B Y +C X +C X +C X +C X +C X +A Z +C Z +C X +C X +C Z +C X +C Z +B Y +C X +A Z +B X +C Z +C X +C Z +C Z +C Z +C X +C X +C Z +C X +C Z +B Y +C X +C X +A Z +C X +C X +B Y +C X +C Z +C X +B X +C Z +A X +C X +C Z +C X +C Z +B Y +C X +A Z +A Y +C X +C Y +B Z +B X +C X +C X +C Z +C X +B Y +C X +A Z +A Y +C X +B Y +C X +C Z +B Y +C X +A Y +C X +C X +C X +A Z +C Z +C X +C X +A X +A Z +C X +C X +A Y +C X +B Y +C Z +C Z +C Z +B Y +C X +C X +C X +C X +A Y +A Z +A X +C Z +A Z +A Z +A Z +C X +A Y +B X +A Z +C X +C X +B X +C X +C X +C X +B Y +A Z +A X +A Z +C X +B X +A X +C X +C X +C X +C X +C X +C Z +A Z +C X +C X +C Z +C X +A Y +A Z +C X +A Z +C X +A Z +C Z +A Z +C X +C X +C X +C X +C X +C X +C X +C X +C X +C X +C X +C X +C X +C X +C X +C X +B Z +C X +A X +C Z +C X +A X +C Z +A X +B Y +A Y +C X +A Z +C X +C X +C X +C X +C X \ No newline at end of file