expeditaet
Version:
Advent of Code Solutions
22 lines (18 loc) • 690 B
text/typescript
import { task } from '@alexaegis/advent-of-code-lib';
import packageJson from '../package.json';
import { extrapolateSequence, parse } from './parse.js';
const extrapolateNextInStack = (sequenceStack: number[][]): number[][] => {
let carry = sequenceStack.last().last();
for (let i = sequenceStack.length - 1; i >= 0; i--) {
carry = (sequenceStack[i]?.last() ?? 0) + carry;
sequenceStack[i]?.push(carry);
}
return sequenceStack;
};
export const p1 = (input: string): number =>
parse(input)
.map(extrapolateSequence)
.map(extrapolateNextInStack)
.map((extrapolatedStack) => extrapolatedStack.first().last())
.sum();
await task(p1, packageJson.aoc); // 1938731307 ~1.57ms