File tree Expand file tree Collapse file tree 2 files changed +8
-4
lines changed
src/main/java/com/codefork/aoc2024/day21 Expand file tree Collapse file tree 2 files changed +8
-4
lines changed Original file line number Diff line number Diff line change 7
7
public class Part02 extends Problem {
8
8
9
9
public String solve (Stream <String > data ) {
10
- System .out .println ("TODO: This takes ~1.5 minutes to run, needs to be optimized" );
10
+ System .out .println ("TODO: This takes ~1 minute to run, needs to be optimized" );
11
11
return String .valueOf (ShipLock .calculateSumOfComplexities (data , 25 ));
12
12
}
13
13
Original file line number Diff line number Diff line change @@ -43,9 +43,13 @@ record WithLength(PressSequence seq, long length) {
43
43
for (var navigator : navigators ) {
44
44
var newPressSeqSet = new HashSet <PressSequence >();
45
45
// one to many results
46
- for (var pressSeq : pressSeqs ) {
47
- var possiblePresses = navigator .getPossiblePressSequences (pressSeq );
48
- newPressSeqSet .addAll (possiblePresses );
46
+
47
+ // parallelization on my laptop w/ 16 virtual cores cuts runtime by 1/3, from 83s to 57s
48
+ var results = pressSeqs .parallelStream ()
49
+ .map (navigator ::getPossiblePressSequences )
50
+ .toList ();
51
+ for (var result : results ) {
52
+ newPressSeqSet .addAll (result );
49
53
}
50
54
51
55
// calculate lengths just once, since it's a slightly expensive operation
You can’t perform that action at this time.
0 commit comments