Skip to content

Commit 17991cd

Browse files
committed
[20250930] BOJ / G4 / 뮤탈리스크 / 김민진
1 parent bfc0486 commit 17991cd

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
```java
2+
import java.io.*;
3+
import java.util.Arrays;
4+
import java.util.StringTokenizer;
5+
6+
public class BJ_12869_뮤탈리스크 {
7+
8+
private static final int[][] dir = new int[][] {
9+
{ 9, 3, 1 },
10+
{ 9, 1, 3 },
11+
{ 3, 9, 1 },
12+
{ 3, 1, 9 },
13+
{ 1, 9, 3 },
14+
{ 1, 3, 9 }
15+
};
16+
17+
private static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
18+
private static final BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
19+
private static StringTokenizer st;
20+
21+
private static int N;
22+
private static int[] scv;
23+
private static int[][][] dp;
24+
25+
public static void main(String[] args) throws IOException {
26+
init();
27+
sol();
28+
}
29+
30+
private static void init() throws IOException {
31+
N = Integer.parseInt(br.readLine());
32+
33+
scv = new int[3];
34+
st = new StringTokenizer(br.readLine());
35+
for (int i = 0; i < N; i++) {
36+
scv[i] = Integer.parseInt(st.nextToken());
37+
}
38+
39+
dp = new int[scv[0] + 1][scv[1] + 1][scv[2] + 1];
40+
41+
for (int i = 0; i <= scv[0]; i++) {
42+
for (int j = 0; j <= scv[1]; j++) {
43+
Arrays.fill(dp[i][j], -1);
44+
}
45+
}
46+
dp[scv[0]][scv[1]][scv[2]] = 0;
47+
}
48+
49+
private static void sol() throws IOException {
50+
for (int i = scv[0]; i >= 0; i--) {
51+
for (int j = scv[1]; j >= 0; j--) {
52+
for (int k = scv[2]; k >= 0; k--) {
53+
// 도달 불가
54+
if (dp[i][j][k] == -1) continue;
55+
56+
for (int[] d : dir) {
57+
int ni = Math.max(i - d[0], 0);
58+
int nj = Math.max(j - d[1], 0);
59+
int nk = Math.max(k - d[2], 0);
60+
61+
// 첫 방문 혹은 작은 수
62+
if (dp[ni][nj][nk] == -1 || dp[ni][nj][nk] > dp[i][j][k] + 1) {
63+
dp[ni][nj][nk] = dp[i][j][k] + 1;
64+
}
65+
}
66+
}
67+
}
68+
}
69+
bw.write(dp[0][0][0] + "");
70+
bw.flush();
71+
bw.close();
72+
br.close();
73+
}
74+
75+
}
76+
```

0 commit comments

Comments
 (0)