-
Notifications
You must be signed in to change notification settings - Fork 20
/
Copy pathDay1.java
35 lines (30 loc) · 865 Bytes
/
Day1.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package com.sbaars.adventofcode.year17.days;
import com.sbaars.adventofcode.common.Day;
import com.sbaars.adventofcode.year17.Day2017;
import java.util.stream.IntStream;
public class Day1 extends Day2017 {
public Day1() {
super(1);
}
public static void main(String[] args) {
Day d = new Day1();
d.downloadIfNotDownloaded();
d.printParts();
}
@Override
public Object part1() {
long[] digits = dayDigits();
return IntStream.range(0, digits.length)
.filter(i -> digits[i] == digits[(i + 1) % digits.length])
.mapToLong(i -> digits[i])
.sum();
}
@Override
public Object part2() {
long[] digits = dayDigits();
return IntStream.range(0, digits.length)
.filter(i -> digits[i] == digits[(i + digits.length / 2) % digits.length])
.mapToLong(i -> digits[i])
.sum();
}
}