UNPKG

expeditaet

Version:
36 lines (30 loc) 841 B
import { task } from '@alexaegis/advent-of-code-lib'; import packageJson from '../package.json'; export const p1 = (input: string): number => { const lines = input.lines(); const bitCount = lines[0]?.length ?? 0; const gammaResult: string[] = []; const epsilonResult: string[] = []; for (let bitIndex = 0; bitIndex < bitCount; bitIndex++) { let c0 = 0; let c1 = 0; for (const line of lines) { if (line[bitIndex] === '0') { c0++; } else { c1++; } } if (c1 >= c0) { gammaResult.push('0'); epsilonResult.push('1'); } else { gammaResult.push('1'); epsilonResult.push('0'); } } const gammaRate = Number.parseInt(gammaResult.join(''), 2); const epsilonRate = Number.parseInt(epsilonResult.join(''), 2); return gammaRate * epsilonRate; }; await task(p1, packageJson.aoc); // 2648450 ~0.12ms