expeditaet
Version:
Advent of Code Solutions
36 lines (30 loc) • 841 B
text/typescript
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