Skip to content

Commit d24c851

Browse files
committed
Small refactoring
1 parent 738838b commit d24c851

File tree

5 files changed

+25
-9
lines changed

5 files changed

+25
-9
lines changed

src/main/java/com/sbaars/adventofcode/year20/days/Day6.java

+6-4
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import java.util.Arrays;
77
import java.util.List;
88

9+
import static java.util.Arrays.stream;
910
import static java.util.stream.Collectors.toCollection;
1011
import static java.util.stream.IntStream.range;
1112

@@ -21,14 +22,15 @@ public static void main(String[] args) {
2122

2223
@Override
2324
public Object part1() {
24-
return Arrays.stream(day().split("\n\n"))
25-
.map(i -> i.replace("\n", ""))
26-
.mapToLong(i -> i.chars().distinct().count()).sum();
25+
return dayStream("\n\n")
26+
.map(s -> s.replace("\n", ""))
27+
.mapToLong(s -> s.chars().distinct().count())
28+
.sum();
2729
}
2830

2931
@Override
3032
public Object part2() {
31-
return Arrays.stream(day().split("\n\n")).mapToInt(group -> {
33+
return stream(day().split("\n\n")).mapToInt(group -> {
3234
String[] people = group.split("\n");
3335
List<Integer> c = people[0].chars().boxed().collect(toCollection(ArrayList::new));
3436
range(1, people.length).forEach(i -> c.retainAll(people[i].chars().boxed().toList()));

src/main/java/com/sbaars/adventofcode/year22/days/Day1.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import java.util.Arrays;
66
import java.util.stream.LongStream;
77

8+
import static java.util.Arrays.stream;
9+
810
public class Day1 extends Day2022 {
911
public Day1() {
1012
super(1);
@@ -26,6 +28,6 @@ public Object part2() {
2628
}
2729

2830
private LongStream input() {
29-
return dayStream("\n\n").mapToLong(s -> Arrays.stream(s.split("\n")).mapToLong(Long::parseLong).sum());
31+
return dayStream("\n\n").mapToLong(s -> stream(s.split("\n")).mapToLong(Long::parseLong).sum());
3032
}
3133
}

src/main/java/com/sbaars/adventofcode/year22/days/Day21.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import static com.sbaars.adventofcode.util.DataMapper.readString;
1515
import static java.util.Optional.empty;
1616
import static java.util.Optional.of;
17+
import static java.util.stream.LongStream.range;
1718

1819
public class Day21 extends Day2022 {
1920
public Day21() {
@@ -40,7 +41,7 @@ public Object part1() {
4041
@Override
4142
public Object part2() {
4243
Map<String, Object> in = input();
43-
long[] valid = LongStream.range(0, Long.MAX_VALUE).filter(i -> diff(in, new long[]{}, i) != Long.MAX_VALUE).limit(2).toArray();
44+
long[] valid = range(0, Long.MAX_VALUE).filter(i -> diff(in, new long[]{}, i) != Long.MAX_VALUE).limit(2).toArray();
4445
return (binarySearch(i -> diff(in, valid, i), valid[0], Long.MAX_VALUE / (valid[1] - valid[0])) * (valid[1] - valid[0])) + valid[0];
4546
}
4647

src/main/java/com/sbaars/adventofcode/year23/days/Day1.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import java.util.stream.IntStream;
99
import java.util.stream.Stream;
1010

11+
import static java.util.stream.IntStream.range;
12+
1113
public class Day1 extends Day2023 {
1214
private static final Map<String, Integer> nums = Map.of("one", 1, "two", 2, "three", 3, "four", 4, "five", 5, "six", 6, "seven", 7, "eight", 8, "nine", 9);
1315

@@ -33,7 +35,7 @@ private Pair<Integer, String> lastDigit(String s) {
3335
}
3436

3537
private static Stream<Pair<Integer, String>> pairStream(String s) {
36-
return IntStream.range(0, s.length()).mapToObj(i -> Pair.of(i, s.charAt(i) + "")).filter(x -> Character.isDigit(x.getRight().charAt(0)));
38+
return range(0, s.length()).mapToObj(i -> Pair.of(i, s.charAt(i) + "")).filter(x -> Character.isDigit(x.getRight().charAt(0)));
3739
}
3840

3941
@Override

src/main/java/com/sbaars/adventofcode/year23/days/Day7.java

+11-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
import com.sbaars.adventofcode.common.map.CountMap;
44
import com.sbaars.adventofcode.year23.Day2023;
55

6+
import java.util.Comparator;
7+
68
import static com.sbaars.adventofcode.util.AOCUtils.zip;
9+
import static com.sbaars.adventofcode.util.AOCUtils.zipWithIndex;
710
import static com.sbaars.adventofcode.util.DataMapper.readString;
811
import static java.util.stream.IntStream.range;
912

@@ -22,12 +25,18 @@ public record Hand(String cards, int bet) {
2225

2326
@Override
2427
public Object part1() {
25-
return zip(dayStream().map(s -> readString(s, "%s %i", Hand.class)).sorted(this::compareHands), range(1, Integer.MAX_VALUE).boxed()).mapToLong(p -> (long) p.a().bet * p.b()).sum();
28+
return solve(this::compareHands);
2629
}
2730

2831
@Override
2932
public Object part2() {
30-
return zip(dayStream().map(s -> readString(s, "%s %i", Hand.class)).sorted(this::compareHands2), range(1, Integer.MAX_VALUE).boxed()).mapToLong(p -> (long) p.a().bet * p.b()).sum();
33+
return solve(this::compareHands2);
34+
}
35+
36+
private long solve(Comparator<Hand> comparator) {
37+
return zipWithIndex(
38+
dayStream().map(s -> readString(s, "%s %i", Hand.class)).sorted(comparator)
39+
).mapToLong(hand -> (long) hand.e().bet * (hand.i() + 1)).sum();
3140
}
3241

3342
public int compareHands(Hand h1, Hand h2) {

0 commit comments

Comments
 (0)