Algorithm
[BAEKJOON] 11403번 : 경로 찾기 (JAVA)
멍목
2023. 3. 27. 22:26
반응형
- 알고리즘 분류 : 플로이드-와샬
- 사용 언어 : JAVA
소스 설명은 주석을 참고해주세요.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
final int INF = 10_000_000;
int N = Integer.parseInt(br.readLine());
int[][] map = new int[N][N];
for(int i=0; i<N; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
for(int j=0; j<N; j++) {
int num = Integer.parseInt(st.nextToken());
map[i][j] = num;
}
}
for(int i=0; i<N; i++){
for(int from=0; from<N; from++){
for(int to=0; to<N; to++){
// from에서 to를 갈 때, i를 거쳐서 가는 방법이 있으면 from ~ to를 1로 표시
if(map[from][i] == 1 && map[i][to] == 1) map[from][to] = 1;
}
}
}
StringBuilder sb = new StringBuilder();
for(int i=0; i<N; i++) {
for(int j=0; j<N; j++) {
sb.append(map[i][j] + " ");
}
sb.append("\n");
}
System.out.println(sb.toString());
}
}
반응형