Skip to content

Commit f8eb6b0

Browse files
authored
[20250617] BOJ / G5 / 내려가기 / 설진영
1 parent e802f9b commit f8eb6b0

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
```java
2+
import java.io.BufferedReader;
3+
import java.io.IOException;
4+
import java.io.InputStreamReader;
5+
import java.util.*;
6+
7+
public class Main {
8+
public static void main(String[] args) throws IOException {
9+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
10+
StringTokenizer st;
11+
12+
int N = Integer.parseInt(br.readLine());
13+
14+
int[] minDp = new int[3];
15+
int[] maxDp = new int[3];
16+
17+
st = new StringTokenizer(br.readLine());
18+
for (int j = 0; j < 3; j++) {
19+
int value = Integer.parseInt(st.nextToken());
20+
minDp[j] = value;
21+
maxDp[j] = value;
22+
}
23+
24+
for (int i = 1; i < N; i++) {
25+
st = new StringTokenizer(br.readLine());
26+
int[] current = new int[3];
27+
for (int j = 0; j < 3; j++) {
28+
current[j] = Integer.parseInt(st.nextToken());
29+
}
30+
31+
int[] tempMin = minDp.clone();
32+
int[] tempMax = maxDp.clone();
33+
34+
minDp[0] = Math.min(tempMin[0], tempMin[1]) + current[0];
35+
minDp[1] = Math.min(tempMin[0], Math.min(tempMin[1], tempMin[2])) + current[1];
36+
minDp[2] = Math.min(tempMin[1], tempMin[2]) + current[2];
37+
38+
maxDp[0] = Math.max(tempMax[0], tempMax[1]) + current[0];
39+
maxDp[1] = Math.max(tempMax[0], Math.max(tempMax[1], tempMax[2])) + current[1];
40+
maxDp[2] = Math.max(tempMax[1], tempMax[2]) + current[2];
41+
}
42+
43+
int maxResult = Math.max(maxDp[0], Math.max(maxDp[1], maxDp[2]));
44+
int minResult = Math.min(minDp[0], Math.min(minDp[1], minDp[2]));
45+
46+
System.out.println(maxResult + " " + minResult);
47+
}
48+
}
49+
```

0 commit comments

Comments
 (0)