0
0
Fork 0
AdventOfCode/javascript/day_03/solution.mjs
2024-12-04 21:27:20 -07:00

35 lines
748 B
JavaScript

import { readFile } from "fs/promises";
if (process.argv.length <= 2) {
console.error(`Needs more args >:(`).
process.exit(0);
}
const fileToRead = process.argv[2];
const file = await readFile(fileToRead, `utf-8`);
const pattern = /(?<cmd>mul|do|don't)\(((?<a>\d{1,3}),(?<b>\d{1,3}))?\)/g;
const commands = file.matchAll(pattern);
let part1Sum = 0;
let part2Sum = 0;
let enabled = true
for (const command of commands) {
const { cmd, a, b } = command.groups;
switch (cmd) {
case "do": enabled = true; break
case "don't": enabled = false; break
case "mul": {
part1Sum += a * b;
if (enabled) {
part2Sum += a * b;
}
break;
}
}
};
console.log(`Part 1 Answer: ${part1Sum}`);
console.log(`Part 2 Answer: ${part2Sum}`);