expeditaet
Version:
Advent of Code Solutions
23 lines (17 loc) • 650 B
text/typescript
import { task } from '@alexaegis/advent-of-code-lib';
import packageJson from '../package.json';
import { parse } from './parse.function.js';
export const p1 = (input: string): number => {
const { jolts, max } = parse(input);
const diffs = new Map<number, number>();
let currentJoltage = 0;
while (currentJoltage <= max) {
const next =
jolts.find((jolt) => jolt - currentJoltage <= 3 && jolt - currentJoltage > 0) ?? 0;
const diff = next - currentJoltage;
currentJoltage = next;
diffs.set(diff, (diffs.get(diff) ?? 0) + 1);
}
return (diffs.get(1) ?? 0) * (diffs.get(3) ?? 0);
};
await task(p1, packageJson.aoc); // 2201 ~0.08ms