From 3d57434c04a669610d5f15bd2a7713e6928cdef7 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Thu, 30 Nov 2023 22:46:45 -0700 Subject: add aoc2023 --- aoc_2023/day0/main_2.js | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 aoc_2023/day0/main_2.js (limited to 'aoc_2023/day0/main_2.js') diff --git a/aoc_2023/day0/main_2.js b/aoc_2023/day0/main_2.js new file mode 100644 index 0000000..3ba05be --- /dev/null +++ b/aoc_2023/day0/main_2.js @@ -0,0 +1,43 @@ +const fs = require("node:fs"); + +const digits = { + one: 1, + two: 2, + three: 3, + four: 4, + five: 5, + six: 6, + seven: 7, + eight: 8, + nine: 9, +}; + +const data = fs.readFileSync("input.txt", "utf8"); + +const res = data + .split("\n") + .filter((line) => line && line != "") + .map((line) => { + let newLine = ""; + for (let i = 0; i < line.length; i++) { + for (let j = i + 1; j < line.length + 1; j++) { + const word = line.substring(i, j); + if (word.match(/^[0-9]$/)) { + newLine += word; + } + if (word in digits) { + newLine += digits[word].toString(); + } + } + } + return newLine; + }) + .reduce((acc, line) => { + const nums = line.split(""); + const first = parseInt(nums.at(0)); + const last = parseInt(nums.at(-1)); + + return acc + (first * 10 + last); + }, 0); + +console.log(res); -- cgit v1.2.3-70-g09d2