File tree Expand file tree Collapse file tree 2 files changed +14
-39
lines changed
src/main/java/com/adventofcode/flashk/day02 Expand file tree Collapse file tree 2 files changed +14
-39
lines changed Original file line number Diff line number Diff line change @@ -10,25 +10,11 @@ public RedNosedReports(List<String> inputs) {
1010 reports = inputs .stream ().map (Report ::new ).toList ();
1111 }
1212
13- public int solveA () {
14- int result = 0 ;
15- for (Report report : reports ) {
16- if (report .isSafe ()) {
17- result ++;
18- }
19- }
20-
21- return result ;
13+ public long solveA () {
14+ return reports .stream ().filter (Report ::isSafe ).count ();
2215 }
2316
24- public int solveB () {
25- int result = 0 ;
26- for (Report report : reports ) {
27- if (report .isSafeDampener ()) {
28- result ++;
29- }
30- }
31-
32- return result ;
17+ public long solveB () {
18+ return reports .stream ().filter (Report ::isSafeDampener ).count ();
3319 }
3420}
Original file line number Diff line number Diff line change @@ -25,27 +25,20 @@ public boolean isSafe() {
2525 boolean expectedIncreasing = isIncreasing ();
2626 boolean isSafe = true ;
2727
28- int i = 1 ;
29- int lastLevel = levels . get ( 0 );
28+ Iterator < Integer > iterator = levels . iterator () ;
29+ int previousLevel = iterator . next ( );
3030
31- while (isSafe && i < levels . size ()) {
32- int currentLevel = levels . get ( i );
33- int distance = currentLevel -lastLevel ;
31+ while (isSafe && iterator . hasNext ()) {
32+ int currentLevel = iterator . next ( );
33+ int distance = currentLevel -previousLevel ;
3434
35- if (distance == 0 ) {
35+ if ((distance == 0 ) ||
36+ ((expectedIncreasing ) && (distance > 3 || distance < 0 )) ||
37+ ((!expectedIncreasing ) && (distance < -3 || distance > 0 ))) {
3638 isSafe = false ;
37- } else if (expectedIncreasing ) {
38- if (distance > 3 || distance < 0 ) {
39- isSafe = false ;
40- }
41- } else {
42- if (distance < -3 || distance > 0 ) {
43- isSafe = false ;
44- }
4539 }
4640
47- lastLevel = currentLevel ;
48- i ++;
41+ previousLevel = currentLevel ;
4942 }
5043
5144 return isSafe ;
@@ -74,11 +67,7 @@ public boolean isSafeDampener() {
7467
7568 return isSafe ;
7669 }
77- /**
78- * true si creciente
79- * false si decreciente;
80- * @return
81- */
70+
8271 private boolean isIncreasing () {
8372 int i = 0 ;
8473 boolean found = false ;
You can’t perform that action at this time.
0 commit comments