Solutions for day 3
This commit is contained in:
parent
ca219ff321
commit
d0bc450d25
59
03/code.js
Normal file
59
03/code.js
Normal file
|
@ -0,0 +1,59 @@
|
|||
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));
|
||||
};
|
Loading…
Reference in New Issue
Block a user