expeditaet
Version:
Advent of Code Solutions
21 lines (16 loc) • 710 B
text/typescript
import { hexToBits } from './model/hex-to-bits.function.js';
import { interpretPacket, isContainerPacket, type Packet } from './model/packet.interface.js';
import { task } from '@alexaegis/advent-of-code-lib';
import packageJson from '../package.json';
const sumVersions = (packet: Packet): number =>
packet.version +
(isContainerPacket(packet)
? packet.subPackets.map((subPacket) => sumVersions(subPacket)).sum()
: 0);
export const p1 = (input: string): number => {
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
const bits = hexToBits(input.lines()[0]!);
const packet = interpretPacket(bits);
return sumVersions(packet);
};
await task(p1, packageJson.aoc); // 920 ~0.26ms