Skip to content

Commit 7432d68

Browse files
authored
[20250910] BOJ / G3 / 택배 / 이준희
1 parent 28519c9 commit 7432d68

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
```java
2+
import java.io.*;
3+
import java.util.*;
4+
5+
public class Main {
6+
static final int INF = 987654321;
7+
8+
public static void main(String[] args) throws IOException {
9+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
10+
StringTokenizer st = new StringTokenizer(br.readLine());
11+
12+
int n = Integer.parseInt(st.nextToken());
13+
int m = Integer.parseInt(st.nextToken());
14+
15+
int[][] dist = new int[n][n];
16+
int[][] next = new int[n][n];
17+
18+
for (int i = 0; i < n; i++) {
19+
Arrays.fill(dist[i], INF);
20+
dist[i][i] = 0;
21+
Arrays.fill(next[i], -1);
22+
}
23+
24+
for (int i = 0; i < m; i++) {
25+
st = new StringTokenizer(br.readLine());
26+
int a = Integer.parseInt(st.nextToken()) - 1;
27+
int b = Integer.parseInt(st.nextToken()) - 1;
28+
int c = Integer.parseInt(st.nextToken());
29+
30+
if (c < dist[a][b]) {
31+
dist[a][b] = c;
32+
dist[b][a] = c;
33+
next[a][b] = b;
34+
next[b][a] = a;
35+
}
36+
}
37+
38+
for (int k = 0; k < n; k++) {
39+
for (int i = 0; i < n; i++) {
40+
for (int j = 0; j < n; j++) {
41+
if (dist[i][j] > dist[i][k] + dist[k][j]) {
42+
dist[i][j] = dist[i][k] + dist[k][j];
43+
next[i][j] = next[i][k];
44+
}
45+
}
46+
}
47+
}
48+
49+
StringBuilder sb = new StringBuilder();
50+
for (int i = 0; i < n; i++) {
51+
for (int j = 0; j < n; j++) {
52+
if (i == j) sb.append("- ");
53+
else sb.append(next[i][j] + 1).append(" ");
54+
}
55+
sb.append("\n");
56+
}
57+
58+
System.out.print(sb);
59+
}
60+
}
61+
62+
```

0 commit comments

Comments
 (0)