jsadvent/solutions/2019/1.js

23 lines
402 B
JavaScript
Raw Normal View History

2020-12-10 08:33:00 +00:00
const { Glib } = require('../../lib');
const fuelFor = (mass) => mass / 3n - 2n;
function* tyrant(mass) {
while ((mass = fuelFor(mass)) > 0n) {
yield mass;
}
}
module.exports = {
'1': (input) =>
Glib.fromLines(input)
.toInts()
.map((i) => fuelFor(i))
.sum(),
2: (input) =>
Glib.fromLines(input)
.toInts()
.flatMap((i) => tyrant(i))
.sum(),
};