33 lines
949 B
JavaScript
33 lines
949 B
JavaScript
import fs from 'node:fs'
|
|
|
|
fs.readFile('input', 'utf8', (err, data) => {
|
|
let cleanedData = []
|
|
data.split(/(\r?\n){2,}/gm).forEach(data => {
|
|
if(data !== '\n'){
|
|
cleanedData.push(data.split('\n').map(n => {return Number(n)}))
|
|
}
|
|
})
|
|
let highestValues = findHighest(cleanedData)
|
|
console.log('Part 1: The elve with the most calories carries: ' + highestValues[0] + ' calories')
|
|
let sumTop3 = highestValues[0]
|
|
for(let i = 0; i < 2; i++) {
|
|
cleanedData.splice(highestValues[1], 1)
|
|
highestValues = findHighest(cleanedData)
|
|
sumTop3 += highestValues[0]
|
|
}
|
|
console.log('Part 2: The three elves with the most calories carry: '+ sumTop3 + ' calories')
|
|
})
|
|
|
|
function findHighest(numberArray) {
|
|
let highestNumber = 0
|
|
let highestIndex = 0
|
|
numberArray.forEach((part, index) => {
|
|
let sum = part.reduce((a, b) => a + b, 0)
|
|
if (sum > highestNumber) {
|
|
highestNumber = sum
|
|
highestIndex = index
|
|
}
|
|
})
|
|
return [highestNumber, highestIndex]
|
|
}
|