aoc-2023/day_1/solve_part2.ts

52 lines
1.3 KiB
TypeScript
Raw Normal View History

2024-12-09 22:41:02 +09:00
const numberTable: Record<string, string> = {
"one": "1",
"two": "2",
"three": "3",
"four": "4",
"five": "5",
"six": "6",
"seven": "7",
"eight": "8",
"nine": "9"
}
const matchBackTable: Record<string, number> = {
// `eight` is started with spell e. `oneight` is one, eight.
"one": 1,
"two": 1,
"three": 1,
"four": 0,
"five": 1,
}
function findFirstNumber(line: string) {
for (let i = 0; i < line.length; i++) {
const front = line.slice(i);
}
}
function transformLine(line: string) {
// find first number
const re = /[0-9]+/;
const firstNumber = line.match(re)?.[0];
console.log(line);
console.log(firstNumber);
return parseInt(firstNumber || "");
const numbersExp = line.matchAll(re);
const numbers = [...numbersExp].map(n => {
if (n[0] in numberTable) {
return numberTable[n[0]];
}
return n[0];
});
console.log(line)
console.log(numbers);
return parseInt(numbers[0] + numbers[numbers.length - 1]);
}
transformLine("eightwothree")
// const input = await Deno.readTextFile("input.txt");
// const lines = input.split("\n");
// const numbers = lines.map(transformLine);
// console.log(numbers.reduce((a, b) => a + b));