Created
December 6, 2023 09:11
-
-
Save ninjacarr/63d4551f25752fbd6922e8ec74668ad7 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const { u } = require("../../tools/utils"); | |
let input = "./input.txt"; | |
//input = "./input_demo.txt"; | |
const lines = u.readInputLines(input); | |
const times = lines[0] | |
.split(" ") | |
.filter((o) => o.trim() != "" && !isNaN(o.trim())) | |
.map((o) => Number(o)); | |
const distances = lines[1] | |
.split(" ") | |
.filter((o) => o.trim() != "" && !isNaN(o.trim())) | |
.map((o) => Number(o)); | |
// Part 1 | |
const winCounts = []; | |
for (i = 0; i <= times.length - 1; i++) { | |
const winningDistances = []; | |
for (var ms = 0; ms <= times[i]; ms++) { | |
const distance = (times[i] - ms) * ms; | |
if (distance > distances[i]) winningDistances.push(distance); | |
} | |
winCounts.push(winningDistances.length); | |
} | |
const partOneAnswer = winCounts.reduce((a, c) => (a *= c), 1); | |
console.log("Part 1:", partOneAnswer); | |
// Part 2 | |
const time2 = Number(lines[0].split(":")[1].replaceAll(" ", "")); | |
const dist2 = Number(lines[1].split(":")[1].replaceAll(" ", "")); | |
console.time("runtime"); | |
const winDist2 = []; | |
for (var ms = 0; ms <= time2; ms++) { | |
const distance = (time2 - ms) * ms; | |
if (distance > dist2) winDist2.push(distance); | |
} | |
console.timeEnd("runtime"); // 340 ms | |
const partTwoAnswer = winDist2.length; | |
console.log("Part 2:", partTwoAnswer); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment