expeditaet
Version:
Advent of Code Solutions
26 lines (23 loc) • 762 B
text/typescript
import { task } from '@alexaegis/advent-of-code-lib';
import packageJson from '../package.json';
import { parseAsSeparateRaces } from './parse.js';
interface RaceResult {
boatSpeed: number;
distanceTraveled: number;
record: number;
}
export const p1 = (input: string): number =>
parseAsSeparateRaces(input)
.map(
(race) =>
Array.from({ length: race.time })
.map<RaceResult>((_v, i) => {
const boatSpeed = i;
const remainingTime = race.time - boatSpeed;
const distanceTraveled = remainingTime * boatSpeed;
return { boatSpeed, distanceTraveled, record: race.distance };
})
.filter((result) => result.distanceTraveled > result.record).length,
)
.product();
await task(p1, packageJson.aoc); // 160816 ~40μs