jsadvent/solutions/2017/5.js

35 lines
807 B
JavaScript
Raw Normal View History

2020-12-10 08:33:00 +00:00
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;
},
};