Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const fs = require('fs');
- const eol = require('os').EOL;
- const startTime = new Date().getTime();
- let part1 = part2 = time = 0;
- let input = fs.readFileSync(__dirname + "/data.txt", 'utf8').split(eol);
- function getPrio(char) {
- let prio = char.charCodeAt();
- return char == char.toLowerCase() ? prio - 96 : prio - 64 + 26
- }
- part1 = input.map(val => {
- let temp = val.split("");
- return [temp.slice(0, temp.length / 2), temp.slice(temp.length / 2)];
- }).map(val =>
- getPrio(val[0].filter((i) => val[1].includes(i))[0])
- ).reduce((a, b) => a + b)
- for (let i = 0; i < input.length; i += 3) {
- let sacks = input.slice(i, i + 3).map((line) => line.split(""));
- for (let j = 1; j < sacks.length; j++) {
- unique = sacks[0].filter((char) => sacks[j].includes(char));
- }
- part2 += getPrio(unique[0]);
- }
- time = new Date().getTime() - startTime
- console.log(`Part 1: ${part1}\nPart 2: ${part2}\nTimer: ${time} ms`);
Advertisement
Add Comment
Please, Sign In to add comment