advent-of-code/1.js

44 lines
1 KiB
JavaScript
Raw Permalink Normal View History

2024-03-06 19:02:56 -06:00
import { loadFile } from "std";
var data = loadFile("1.txt");
var lines = data.split("\n");
var amt = 0;
for (var i = 0; i < lines.length; i++) {
var match = lines[i].match(/\d/g);
if (!match) continue;
var num = match[0].concat(match[match.length-1]);
amt += Number(num);
}
console.log("Part 1:");
console.log(amt);
var nums = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
function num2n(str)
{
for (var i = 0; i < nums.length; i++)
if (nums[i] === str) return i.toString();
return undefined;
}
var amt = 0;
var lines = data.split("\n");
for (var i = 0; i < lines.length; i++) {
var match = [...lines[i].matchAll(/(?=(\d|one|two|three|four|five|six|seven|eight|nine))/g)].flat();
if (!match) continue;
if (match.length === 0) continue;
match = match.flatMap(function(m) {
if (!m) return undefined;
if (m.match(/\d/))
return m;
else
return num2n(m);
}).filter(x => x);
amt += Number(match[0].concat(match[match.length-1]));
}
console.log("Part 2:");
console.log(amt);