Files
advent-of-code/2020/08/part1.js

39 lines
666 B
JavaScript
Raw Permalink Normal View History

2020-12-08 16:19:49 +00:00
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;
}
}
});