UNPKG

expeditaet

Version:
35 lines (28 loc) 926 B
import { lcm, task } from '@alexaegis/advent-of-code-lib'; import packageJson from '../package.json'; import { parse } from './parse.function.js'; export const p2 = (input: string): number => { const { monkeyMap, monkeys } = parse(input); const leastCommonTest = lcm(monkeys.map((m) => m.test)); for (let round = 0; round < 10_000; round++) { for (const monkey of monkeys) { for (const item of monkey.items) { const afterBored = monkey.operation(item); if (afterBored % monkey.test === 0) { const target = monkeyMap[monkey.trueTarget]; target?.items.push(afterBored % leastCommonTest); } else { const target = monkeyMap[monkey.falseTarget]; target?.items.push(afterBored % leastCommonTest); } monkey.inspects++; } monkey.items = []; } } return monkeys .map((m) => m.inspects) .max(2) .product(); }; await task(p2, packageJson.aoc); // 25712998901 ~29.12ms