Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 1x 1x 1x 111x 111x 111x 476x 1204x 575x 111x 1x 2x 2x 2x 105x 105x 103x 1x | const { readFile } = require('../helpers/file')
const { extractGameResults } = require('./puzzle1')
const getMinimumRequiredBalls = (line) => {
const gameResults = extractGameResults(line)
const minimumConfiguration = { blue: 0, green: 0, red: 0 }
for (const result of gameResults) {
Object.entries(result).forEach(([key, value]) => {
if (minimumConfiguration[key] < value) {
minimumConfiguration[key] = value
}
})
}
return minimumConfiguration
}
const resolvePuzzle = (fileInput) => {
const puzzle = readFile(fileInput)
const pows = []
for (const line of puzzle) {
const minimumValues = getMinimumRequiredBalls(line)
pows.push(minimumValues.green * minimumValues.blue * minimumValues.red)
}
// Calculate the sum of ids
return pows.reduce((accumulator, currentValue) => accumulator + currentValue)
}
module.exports = { getMinimumRequiredBalls, resolvePuzzle }
|