adventofcode2021/07/code.js

36 lines
774 B
JavaScript

const fs = require('fs');
const inputArray = fs.readFileSync('input.txt').toString().split(",").map(Number);
const min = Math.min(...inputArray);
const max = Math.max(...inputArray);
// Day One
let fuel = max * max;
for (let i = min; i <= max; i++) {
let thisFuel = 0;
for (const crab of inputArray) {
thisFuel = thisFuel + Math.abs(i - crab);
}
if (thisFuel < fuel) {
fuel = thisFuel;
}
}
console.log(fuel)
// Day Two
fuel = max * max * max * max;
for (let i = min; i <= max; i++) {
let thisFuel = 0;
for (const crab of inputArray) {
const steps = Array.from({length: Math.abs(i - crab)}, (_, n) => n + 1);
thisFuel = thisFuel + steps.reduce((a, b) => a + b, 0);
}
if (thisFuel < fuel) {
fuel = thisFuel;
}
}
console.log(fuel)