git-subtree-dir: 2020 git-subtree-mainline:ab8f135946
git-subtree-split:aaabfa90c9
33 lines
798 B
JavaScript
33 lines
798 B
JavaScript
const fs = require('fs');
|
|
|
|
fs.readFile('input', (err, data) => {
|
|
if (err) throw err;
|
|
let input = data.toString().trim().split("\n").map((line) => Number(line) );
|
|
|
|
let builtIn = Math.max(...input) + 3;
|
|
let adapters = new Set ( input );
|
|
let jolts = 0;
|
|
let diff1s = 0;
|
|
let diff3s = 1; // The built-ion adapter
|
|
|
|
for (i=0; i < input.length; i++) {
|
|
// All entries are unique, so no need to worry about jolts+0
|
|
if (adapters.has(jolts+1)) {
|
|
diff1s++;
|
|
adapters.delete(jolts+1);
|
|
jolts++;
|
|
} else if (adapters.has(jolts+2)) {
|
|
adapters.delete(jolts+2);
|
|
jolts+=2;
|
|
} else if (adapters.has(jolts+3)) {
|
|
diff3s++;
|
|
adapters.delete(jolts+3);
|
|
jolts+=3;
|
|
} else {
|
|
throw ("oh no");
|
|
}
|
|
};
|
|
|
|
console.log(diff1s * diff3s);
|
|
});
|