8
8
import java .util .stream .Stream ;
9
9
10
10
import static com .sbaars .adventofcode .common .SmartArray .toSmartArray ;
11
- import static com .sbaars .adventofcode .util .AOCUtils .connectedPairs ;
12
- import static com .sbaars .adventofcode .util .AOCUtils .zip ;
11
+ import static com .sbaars .adventofcode .util .AoCUtils .zip ;
13
12
import static com .sbaars .adventofcode .util .DataMapper .readString ;
14
13
import static com .sbaars .adventofcode .util .Solver .solve ;
15
14
import static java .util .stream .IntStream .range ;
@@ -24,8 +23,11 @@ public static void main(String[] args) {
24
23
new Day12 ().printParts ();
25
24
}
26
25
27
- public record Input (String initial , List <Note > notes ) {}
28
- public record Note (String adjecent , char c ) {}
26
+ public record Input (String initial , List <Note > notes ) {
27
+ }
28
+
29
+ public record Note (String adjecent , char c ) {
30
+ }
29
31
30
32
@ Override
31
33
public Object part1 () {
@@ -44,17 +46,17 @@ private static ToLongFunction<SmartArray<Integer>> sum() {
44
46
private Stream <SmartArray <Integer >> growth () {
45
47
Input in = readString (day (), "initial state: %s\n \n %l(%s => %c)" , "\n " , Input .class , Note .class );
46
48
var plants = range (0 , in .initial .length ()).filter (i -> in .initial .charAt (i ) == '#' ).boxed ().collect (toSmartArray ());
47
- return Stream .iterate (plants , p -> range (p .get (0 ) - 2 , p .get (p .size () -1 ) + 2 )
48
- .filter (i -> plantGrows (in .notes , p , i ))
49
- .boxed ().collect (toSmartArray ()));
49
+ return Stream .iterate (plants , p -> range (p .get (0 ) - 2 , p .get (p .size () - 1 ) + 2 )
50
+ .filter (i -> plantGrows (in .notes , p , i ))
51
+ .boxed ().collect (toSmartArray ()));
50
52
}
51
53
52
54
private boolean plantGrows (List <Note > notes , SmartArray <Integer > arr , int i ) {
53
55
return notes
54
- .stream ()
55
- .filter (n -> zip (n .adjecent .chars ().boxed (), rangeClosed (-2 , 2 ).boxed ()).allMatch (e -> (e .a () == '#' ) == arr .contains (i + e .b ())))
56
- .map (n -> n .c == '#' )
57
- .findFirst ()
58
- .orElse (false );
56
+ .stream ()
57
+ .filter (n -> zip (n .adjecent .chars ().boxed (), rangeClosed (-2 , 2 ).boxed ()).allMatch (e -> (e .a () == '#' ) == arr .contains (i + e .b ())))
58
+ .map (n -> n .c == '#' )
59
+ .findFirst ()
60
+ .orElse (false );
59
61
}
60
62
}
0 commit comments