Files
advent-of-code/2020/09/part2.js
Nick Thomas f1be11fca8 Add '2020/' from commit 'aaabfa90c9033044d0a9d5fe6776b718711ef46c'
git-subtree-dir: 2020
git-subtree-mainline: ab8f135946
git-subtree-split: aaabfa90c9
2022-01-09 17:06:15 +00:00

36 lines
841 B
JavaScript

const fs = require('fs');
const PREAMBLE_SIZE = 25;
function breakIt(input, target) {
for (i=0;i<input.length;i++) {
for(j=i+1;j<input.length;j++) {
let subset = input.slice(i, j);
if (target == subset.reduce((a,b) => a+b)) {
console.log(Math.min(...subset) + Math.max(...subset))
return;
}
}
}
}
fs.readFile('input', (err, data) => {
if (err) throw err;
let input = data.toString().trim().split("\n").map((line) => Number(line) );
let buf = input.slice(0, PREAMBLE_SIZE);
for(pos=PREAMBLE_SIZE;pos<input.length;pos++) {
let next = input[pos];
let sums = new Set();
buf.forEach((a) => buf.forEach((b) => { if (a != b) sums.add(a+b); }));
if (!sums.has(next)) {
breakIt(input, next);
return;
}
buf = buf.slice(1, 25);
buf.push(next);
}
});