finished part 2 of day 1
This commit is contained in:
parent
29d7c4260c
commit
8bc861d73c
|
@ -0,0 +1,68 @@
|
|||
use = "strict";
|
||||
|
||||
const fs = require("fs");
|
||||
const inputText = fs.readFileSync("./input.txt").toString("utf-8");
|
||||
const splitInputText = inputText.split("\n");
|
||||
|
||||
const testData = `1000
|
||||
2000
|
||||
3000
|
||||
|
||||
4000
|
||||
|
||||
5000
|
||||
6000
|
||||
|
||||
7000
|
||||
8000
|
||||
9000
|
||||
|
||||
10000
|
||||
`;
|
||||
|
||||
const splitTestData = testData.split("\n");
|
||||
|
||||
function calculateEachElfsTotalCalories(input) {
|
||||
let calculatedCalories = [];
|
||||
let currentTotalCalories = 0;
|
||||
|
||||
input.forEach((line, curIndex, array) => {
|
||||
if (line.length !== 0) {
|
||||
let num = Number.parseInt(line);
|
||||
if (Number.isInteger(num)) {
|
||||
currentTotalCalories += num;
|
||||
}
|
||||
} else {
|
||||
calculatedCalories.push(currentTotalCalories);
|
||||
currentTotalCalories = 0;
|
||||
}
|
||||
});
|
||||
|
||||
return calculatedCalories;
|
||||
}
|
||||
|
||||
/**
|
||||
* [getTotalOfTop description]
|
||||
*
|
||||
* @param {[Integer]} count [count description]
|
||||
* @param {[Array]} array [array description]
|
||||
*
|
||||
* @return {[Integer]} [return description]
|
||||
*/
|
||||
function getTotalOfTop(count, array) {
|
||||
const sortedArray = array.sort(compareNumeric);
|
||||
// console.log(sortedArray);
|
||||
return sortedArray[0] + sortedArray[1] + sortedArray[2];
|
||||
}
|
||||
|
||||
function compareNumeric(a, b) {
|
||||
if (a > b) return -1;
|
||||
if (a == b) return 0;
|
||||
if (a < b) return 1;
|
||||
}
|
||||
|
||||
let results = calculateEachElfsTotalCalories(splitTestData);
|
||||
console.log("TestData = " + getTotalOfTop(3, results));
|
||||
|
||||
results = calculateEachElfsTotalCalories(splitInputText);
|
||||
console.log("InputData = " + getTotalOfTop(3, results));
|
Loading…
Reference in New Issue