add 9
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
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.unshift(cur.at(0)! - prev)
|
||||
return cur.at(0)!
|
||||
}, 0)
|
||||
sum += acc
|
||||
}
|
||||
console.log(sum)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user