23 lines
402 B
JavaScript
23 lines
402 B
JavaScript
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(),
|
|
};
|