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; } } });