Browse Source

Solve 2023 day 6 part 1

master
Garrit Franke 5 months ago
parent
commit
f19d92c97d
Signed by: garrit
GPG Key ID: BB54AF7EB0939F3D
  1. 49
      2023/Day6/javascript/solve.js

49
2023/Day6/javascript/solve.js

@ -0,0 +1,49 @@
const fs = require("node:fs");
const path = require("node:path");
const input = fs
.readFileSync(path.join(__dirname, "../input.txt"), "utf8")
.split("\n")
.filter((line) => line !== "");
const play = (time, record) => {
const strategies = [];
for (let i = 0; i < time; i++) {
const speed = i;
const calculatedTime = (time - speed) * speed;
if (calculatedTime > record) {
strategies.push(speed);
}
}
return strategies;
};
const part1 = (lines) => {
const times = lines[0]
.split(":")[1]
.trim()
.split(/ +/)
.map((num) => Number.parseInt(num.trim(), 0));
const distances = lines[1]
.split(":")[1]
.trim()
.split(/ +/)
.map((num) => Number.parseInt(num.trim(), 0));
let result = 1;
for (let i = 0; i < times.length; i++) {
const distance = distances[i];
const time = times[i];
const strategies = play(time, distance);
result *= strategies.length;
}
return result;
};
console.log(part1(input));
Loading…
Cancel
Save