Advertisement
mosredna

AoC 2023 day 1

Nov 30th, 2023
2,115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 1.21 KB | Software | 0 0
  1. const fs = require("fs")
  2. const performance = require("perf_hooks").performance
  3. const eol = require("os").EOL
  4.  
  5. let startTime = performance.now()
  6. let part1 = (part2 = 0)
  7. let input = fs.readFileSync(__dirname + "/test.txt", "utf8").split(eol)
  8.  
  9. input.map((item) => {
  10.     part1 += getFirstAndLastNumbers(item)
  11.     part2 += getFirstAndLastNumbers(replaceWordsWithNumbers(item))
  12. })
  13. function getFirstAndLastNumbers(inputString) {
  14.     const numbers = inputString.match(/\d/g)
  15.  
  16.     const firstNumber = parseInt(numbers[0])
  17.     const lastNumber = parseInt(numbers[numbers.length - 1])
  18.     return parseInt(firstNumber + "" + lastNumber)
  19. }
  20. function replaceWordsWithNumbers(inputString) {
  21.     const wordToNumber = {
  22.         one: "one1one",
  23.         two: "two2two",
  24.         three: "three3three",
  25.         four: "four4four",
  26.         five: "five5five",
  27.         six: "six6six",
  28.         seven: "seven7seven",
  29.         eight: "eight8eight",
  30.         nine: "nine9nine"
  31.     }
  32.     for (const num in wordToNumber) {
  33.         inputString = inputString.replaceAll(num, wordToNumber[num])
  34.     }
  35.     return inputString
  36. }
  37. let time = performance.now() - startTime
  38. console.log(`Part 1: ${part1}\nPart 2: ${part2}\nTimer: ${time} ms`)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement