adventofcode2022/03/code.js

60 lines
1.3 KiB
JavaScript
Raw Normal View History

2022-12-03 23:05:29 +00:00
const fs = require('fs');
const inputArray = fs.readFileSync('input.txt').toString().split("\n");
// Part One
let totalPriority = 0;
for (i in inputArray) {
const contents = (inputArray[i]);
const intersection = getIntersection(contents);
const priority = getPriority(intersection);
totalPriority += priority;
}
console.log(totalPriority);
// Part Two
totalPriority = 0;
let group = [];
for (i in inputArray) {
const contents = (inputArray[i]);
group.push(contents.split(""));
if (group.length === 3) {
const badge = getBadge(group);
const priority = getPriority(badge);
totalPriority += priority;
group = [];
}
}
console.log(totalPriority);
// functions
function getBadge(arrs) {
let badge = arrs[0];
for(let i = 1; i < arrs.length; i++){
badge = intersection(badge, arrs[i]);
};
return badge[0];
}
function getIntersection(contents) {
const length = contents.length;
const first = contents.substring(0, length / 2).split("");
const second = contents.substring(length / 2).split("");
return intersection(first, second)[0];
}
function getPriority(char) {
const characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
return characters.indexOf(char) + 1;
}
function intersection(first, second) {
return first.filter(x => second.includes(x));
};