Skip to content

Commit f8312a8

Browse files
committed
refactor: minor refactor to day 2
1 parent cfed5c0 commit f8312a8

File tree

2 files changed

+14
-39
lines changed

2 files changed

+14
-39
lines changed

src/main/java/com/adventofcode/flashk/day02/RedNosedReports.java

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff 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
}

src/main/java/com/adventofcode/flashk/day02/Report.java

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff 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;

0 commit comments

Comments
 (0)