UNPKG

expeditaet

Version:
31 lines (27 loc) 729 B
import { task } from '@alexaegis/advent-of-code-lib'; import packageJson from '../package.json'; class LanternFish { constructor(public timer = 8) {} next(): LanternFish | undefined { if (this.timer === 0) { this.timer = 6; return new LanternFish(); } else { this.timer--; return undefined; } } } export const p1 = (input: string, maxDay = 80): number => { const fishes = input.splitToInt({ delimiter: /,/ }).map((time) => new LanternFish(time)); let day = 0; while (day < maxDay) { const next = fishes .map((fish) => fish.next()) .filter((next): next is LanternFish => !!next); fishes.push(...next); day++; } return fishes.length; }; await task(p1, packageJson.aoc); // 361169 ~118.92ms