Solutions to day 2
This commit is contained in:
parent
8764826a99
commit
ca219ff321
101
02/code.js
Normal file
101
02/code.js
Normal file
@ -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;
|
||||||
|
}
|
2500
02/input.txt
Normal file
2500
02/input.txt
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user