jsadvent/solutions/2017/5.js
2020-12-10 02:33:00 -06:00

35 lines
807 B
JavaScript

const { Glib } = require('../../lib');
const parse = (input) => Glib.fromLines(input).toInts().array;
module.exports = {
'1': (input) => {
const program = parse(input);
let programCounter = 0n;
let step = 0;
while (programCounter < program.length) {
const delta = program[programCounter];
program[programCounter]++;
programCounter += delta;
step++;
}
return step;
},
'2': (input) => {
const program = parse(input);
let programCounter = 0n;
let step = 0;
while (programCounter < program.length) {
const delta = program[programCounter];
if (delta >= 3n) {
program[programCounter]--;
} else {
program[programCounter]++;
}
programCounter += delta;
step++;
}
return step;
},
};