Files
advent-of-code/2020/08/part1.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

39 lines
666 B
JavaScript

const fs = require('fs');
function parseLine(line) {
let [ op, offset ] = line.split(' ');
return { op: op, offset: Number(offset), visited: false };
}
fs.readFile('input', (err, data) => {
if (err) throw err;
let program = data.toString().split("\n").map( parseLine ).flat();
let acc = 0;
let pc = 0;
while (true) {
let insn = program[pc];
if (insn.visited) {
console.log(acc);
break;
}
insn.visited = true;
switch (insn.op) {
case 'nop':
pc++;
break;
case 'jmp':
pc = pc + insn.offset;
break;
case 'acc':
acc = acc + insn.offset;
pc++;
break;
}
}
});