Add '2020/' from commit 'aaabfa90c9033044d0a9d5fe6776b718711ef46c'
git-subtree-dir: 2020 git-subtree-mainline:ab8f135946
git-subtree-split:aaabfa90c9
This commit is contained in:
38
2020/08/part1.js
Normal file
38
2020/08/part1.js
Normal file
@@ -0,0 +1,38 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
});
|
Reference in New Issue
Block a user