https://www.acmicpc.net/problem/11404
๋ฌธ์ ์ ์ ๋ชฉ์์ ์ ์ ์๋ฏ์ด ํ๋ก์ด๋-์์ฌ ์๊ณ ๋ฆฌ์ฆ์ ์ฐ๋ ๋ฌธ์ ์ด๋ค. ๊ณจ๋4๋ผ๋๋ฐ ๋ค๋ฅธ ๊ณจ๋ ๋ฌธ์ ์ ๋นํ๋ฉด ๋ ๊น๋ค๋ก์ด ํธ์ด์๋ค. ํ๋ก์ด๋-์์ฌ ์๊ณ ๋ฆฌ์ฆ์ ์ ์๊ณ ๋ฌธ์ ์ ์กฐ๊ฑด๋ง ์ ์ฒ๋ฆฌ๋ฅผ ํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๊ฐ์ ๊ทธ๋ํ ํ์์ DFS&BFS ๋ฌธ์ ๋ณด๋ค ์๋์ ์ผ๋ก ์ฝ๊ฒ ๋๊ปด์ง๋ค.
๋ฌธ์ ์ ์กฐ๊ฑด๋ค์ ๊ผผ๊ผผํ ์ฝ์ด์ผ ํ๋ค.
"์์ ๋์์ ๋์ฐฉ ๋์๋ฅผ ์ฐ๊ฒฐํ๋ ๋ ธ์ ์ ํ๋๊ฐ ์๋ ์ ์๋ค", "๋ง์ฝ, i์์ j๋ก ๊ฐ ์ ์๋ ๊ฒฝ์ฐ์๋ ๊ทธ ์๋ฆฌ์ 0์ ์ถ๋ ฅํ๋ค."์ ์ ์ํด์ผ ํ๋ค.
99%์ฏค์์ ๋ฌธ์ ๊ฐ ํ๋ฆฌ๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ๋๋ฐ ์ง๋ฌธ ๊ฒ์ํ์์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ธ๊ณผ ๋ต๋ณ์ ์ฐพ์์ ๋ณด๋ INF๋ฅผ ์์ ์๋ก ์ค์ ํด์ ๊ทธ๋ ๋ค๊ณ ํ๋ค. ์์ ํ ํฐ ์๋ก ๋ฐ๊ฟ์คฌ๋๋ ๋ง์๋ค๊ณ ๋์จ๋ค.
์ฝ๋
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Floyd_warshall {
static int INF = 987654321;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int m = Integer.parseInt(br.readLine());
int[][] arr = new int[n + 1][n + 1];
for(int i = 1; i < n + 1; i++) { //๋ฐฐ์ด ์ด๊ธฐํ
for(int j = 1; j < n + 1; j++) {
if(i == j) {
arr[i][j] = 0;
continue;
}
arr[i][j] = INF;
}
}
for(int i = 0; i < m; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int c = Integer.parseInt(st.nextToken());
arr[a][b] = Math.min(arr[a][b], c);
}
for(int k = 1; k < n + 1; k++) { //ํ๋ก์ด๋-์์ฌ
for(int i = 1; i < n + 1; i++) {
for(int j = 1; j < n + 1; j++) {
arr[i][j] = Math.min(arr[i][j], arr[i][k] + arr[k][j]);
}
}
}
for(int i = 1; i < n + 1; i++) { //์ถ๋ ฅ
for(int j = 1; j < n + 1; j++) {
if(arr[i][j] == INF) {
arr[i][j] = 0;
}
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
๊ฒฐ๊ณผ
'Algorithm > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 2563๋ฒ - ์์ข ์ด (0) | 2022.08.05 |
---|---|
๋ฐฑ์ค 1916๋ฒ - ์ต์๋น์ฉ ๊ตฌํ๊ธฐ (0) | 2022.04.08 |
๋ฐฑ์ค 1780๋ฒ - ์ข ์ด์ ๊ฐ์ (0) | 2022.04.03 |
๋ฐฑ์ค 1072๋ฒ - ๊ฒ์ (0) | 2022.03.30 |
๋ฐฑ์ค 2805๋ฒ - ๋๋ฌด ์๋ฅด๊ธฐ (0) | 2022.03.28 |