import fs from "fs-extra"; import fp from "lodash/fp.js"; import _ from "lodash"; export const processFile = async (f) => fs .readFile(f, "utf8") .then((x) => x.split("\n").filter((x) => x)) .then((lines) => lines.map((l) => l.split("").map((x) => parseInt(x))) ); const mostCommon = (numbers) => (_.sum(numbers) * 2 > numbers.length ? 1 : 0); export const toDecimal = (numbers) => numbers.reduce((a, x) => a * 2 + x, 0); export const solution = (entries) => { const groups = _.zip(...entries).map(mostCommon); const gamma = toDecimal(groups); const epsilon = toDecimal(groups.map((x) => 1 - x)); return gamma * epsilon; };