-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDay11.java
64 lines (59 loc) · 1.57 KB
/
Day11.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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import java.io.FileReader;
import java.util.Scanner;
public class Day11 {
public static int distance(int n, int nw) {
if (Math.abs(n) < Math.abs(nw)) {
// swap so we have only one case
int tmp = n;
n = nw;
nw = tmp;
}
if (n < 0) {
// swap to simplify mirrored cases
n = -n;
nw = -nw;
}
if (nw > 0) {
return n + nw;
} else {
return n;
}
}
public static void main(String[] args) throws Exception {
Scanner in = new Scanner(new FileReader("src/input/day11.in"));
String input = in.next();
String[] moves = input.split(",");
int nw = 0;
int n = 0;
int maxDistance = 0;
for (String move : moves) {
switch (move) {
case "n":
n++;
break;
case "ne":
n++;
nw--;
break;
case "nw":
nw++;
break;
case "s":
n--;
break;
case "se":
nw--;
break;
case "sw":
n--;
nw++;
break;
}
maxDistance = Math.max(maxDistance, distance(n, nw));
}
// Part 1
System.out.println(distance(n, nw));
// Part 2
System.out.println(maxDistance);
}
}