All files / day1 puzzle1.js

100% Statements 17/17
100% Branches 2/2
100% Functions 2/2
100% Lines 17/17

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 292x 2x     2015x 2015x 2015x 36243x 6600x     2015x 2015x       1x     1x 1x 1x 1x 1000x   1x   2x  
const fs = require('fs')
const path = require('path')
 
function extractCalibrationValue(inputString) {
  const inputArray = [...inputString]
  const integersFound = []
  for (const element of inputArray) {
    if (!isNaN(parseInt(element))) {
      integersFound.push(element)
    }
  }
  const lastIndex = integersFound.length - 1
  return parseInt(integersFound[0] + integersFound[lastIndex])
}
 
function resolvePuzzle1() {
  let content = fs
    .readFileSync(process.cwd() + '/day1/puzzle_input.txt')
    .toString()
  const puzzle = content.split('\n')
  puzzle.pop() // blank line
  let sum = 0
  for (const line of puzzle) {
    sum += extractCalibrationValue(line)
  }
  return sum
}
module.exports = { extractCalibrationValue, resolvePuzzle1 }