Skip to content

Commit 70ac4bd

Browse files
committed
Solve 2023 day 6 part 2
1 parent f19d92c commit 70ac4bd

File tree

1 file changed

+40
-9
lines changed

1 file changed

+40
-9
lines changed

2023/Day6/javascript/solve.js

Lines changed: 40 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ const input = fs
66
.split("\n")
77
.filter((line) => line !== "");
88

9-
const play = (time, record) => {
9+
const calculateWinningStrategies = (time, record) => {
1010
const strategies = [];
1111
for (let i = 0; i < time; i++) {
1212
const speed = i;
@@ -20,6 +20,21 @@ const play = (time, record) => {
2020
};
2121

2222
const part1 = (lines) => {
23+
const play = (times, distances) => {
24+
let result = 1;
25+
26+
for (let i = 0; i < times.length; i++) {
27+
const distance = distances[i];
28+
const time = times[i];
29+
30+
const strategies = calculateWinningStrategies(time, distance);
31+
32+
result *= strategies.length;
33+
}
34+
35+
return result;
36+
};
37+
2338
const times = lines[0]
2439
.split(":")[1]
2540
.trim()
@@ -32,18 +47,34 @@ const part1 = (lines) => {
3247
.split(/ +/)
3348
.map((num) => Number.parseInt(num.trim(), 0));
3449

35-
let result = 1;
50+
return play(times, distances);
51+
};
3652

37-
for (let i = 0; i < times.length; i++) {
38-
const distance = distances[i];
39-
const time = times[i];
53+
const part2 = (lines) => {
54+
const play = (times, distances) => {
55+
let strategies = [];
4056

41-
const strategies = play(time, distance);
57+
const distance = distances[0];
58+
const time = times[0];
4259

43-
result *= strategies.length;
44-
}
60+
return calculateWinningStrategies(time, distance).length;
61+
};
62+
const times = lines[0]
63+
.split(":")[1]
64+
.trim()
65+
.replace(/ +/g, "")
66+
.split()
67+
.map((num) => Number.parseInt(num.trim(), 0));
68+
69+
const distances = lines[1]
70+
.split(":")[1]
71+
.trim()
72+
.replace(/ +/g, "")
73+
.split()
74+
.map((num) => Number.parseInt(num.trim(), 0));
4575

46-
return result;
76+
return play(times, distances);
4777
};
4878

4979
console.log(part1(input));
80+
console.log(part2(input));

0 commit comments

Comments
 (0)