Skip to content

Instantly share code, notes, and snippets.

@mentalclear
Created December 7, 2021 04:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mentalclear/5989e19a424f105827f97427d1d21b57 to your computer and use it in GitHub Desktop.
Save mentalclear/5989e19a424f105827f97427d1d21b57 to your computer and use it in GitHub Desktop.
Solution for "Advent of Code" Day 3 Part 1
let fs = require("fs")
const readFileLines = filename =>
fs.readFileSync(filename)
.toString('utf-8')
.split('\n');
let inputArray = readFileLines('C:\\AdventOfCode\\day3.txt');
function countResult(inputArray, gamma_epsilon) {
const arrays = [[], [], [], [], [], [], [], [], [], [], [], []];
let result = '';
let current = [];
for (let i = 0; i < inputArray.length; i++) {
current = inputArray[i].split('');
for (let j = 0; j < current.length; j++) {
arrays[j].push(current[j]);
}
}
const decision = (arr, decide) => {
let zeros = 0;
let ones = 0;
arr.forEach(digit => {
if (Number(digit) === 0) zeros += 1;
else ones += 1;
});
if (decide === "gamma") {
if (zeros > ones) return "0"
else return "1"
} else {
if (zeros > ones) return "1"
else return "0"
}
}
for (let element of arrays) {
result += (decision(element, gamma_epsilon));
}
return parseInt(result, 2);
}
const powerConsumption = countResult(inputArray, "gamma") * countResult(inputArray, "epsilon");
console.log(powerConsumption);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment