Files
Advent-of-code/9.1.ts
T
2023-12-14 15:29:07 +01:00

26 lines
811 B
TypeScript

import { open } from 'node:fs/promises';
function computeDifference(input: number[]) {
const output: number[] = []
input.forEach((e, i, arr) => {
if (i === 0) return
output.push(arr[i] - arr[i - 1])
});
return output
}
const file = await open('./inputs/9');
let sum = 0
for await (const line of file.readLines()) {
const numbers = line.split(" ").map<number>(e => Number(e))
const differences: number[][] = [numbers]
if (differences.at(-1) === undefined) throw new Error('wtf')
while (!differences.at(-1)?.every(e => e === 0)) {
differences.push(computeDifference(differences.at(-1)!))
}
let acc = differences.reduceRight((prev, cur) => {
cur.push(cur.at(-1)! + prev)
return cur.at(-1)!
}, 0)
sum += acc
}
console.log(sum)