35 lines
807 B
JavaScript
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;
|
|
},
|
|
};
|