Skip to content

Commit fca06df

Browse files
authored
[20251126] BOJ / G5 / 내려가기 / 강신지
1 parent 3ac12bc commit fca06df

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
```java
2+
import java.io.*;
3+
import java.util.*;
4+
5+
public class Main {
6+
public static void main(String[] args) throws IOException {
7+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
8+
9+
int n = Integer.parseInt(br.readLine());
10+
int[][] map = new int[n][3];
11+
int[] maxdp = new int[3];
12+
int[] mindp = new int[3];
13+
14+
for (int i=0; i<n; i++){
15+
StringTokenizer st = new StringTokenizer(br.readLine());
16+
for (int j=0; j<3; j++){
17+
int num = Integer.parseInt(st.nextToken());
18+
if (i==0) {
19+
maxdp[j] = num;
20+
mindp[j] = num;
21+
}
22+
map[i][j] = num;
23+
}
24+
}
25+
26+
for (int i=1; i<n; i++){
27+
int max1 = Math.max(maxdp[0], maxdp[1]);
28+
int max2 = Math.max(maxdp[1], maxdp[2]);
29+
maxdp[0] = max1 + map[i][0];
30+
maxdp[2] = max2 + map[i][2];
31+
32+
int max3 = Math.max(max1, max2);
33+
maxdp[1] = max3 + map[i][1];
34+
35+
int min1 = Math.min(mindp[0], mindp[1]);
36+
int min2 = Math.min(mindp[1], mindp[2]);
37+
mindp[0] = min1 + map[i][0];
38+
mindp[2] = min2 + map[i][2];
39+
40+
int min3 = Math.min(min1, min2);
41+
mindp[1] = min3 + map[i][1];
42+
}
43+
44+
int min = Integer.MAX_VALUE;
45+
int max = 0;
46+
for (int i=0; i<3; i++){
47+
min = Math.min(min, mindp[i]);
48+
max = Math.max(max, maxdp[i]);
49+
}
50+
51+
System.out.print(max+" "+min);
52+
}
53+
}
54+
```

0 commit comments

Comments
 (0)