44 lines
1 KiB
JavaScript
44 lines
1 KiB
JavaScript
|
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);
|