반응형
- 알고리즘 분류 : 플로이드-와샬
- 사용 언어 : 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());
}
}
반응형
'Algorithm' 카테고리의 다른 글
[BAEKJOON] 2151번 : 거울 설치 (JAVA) (0) | 2023.03.31 |
---|---|
[BAEKJOON] 2458번 : 키 순서 (JAVA) (0) | 2023.03.28 |
[BAEKJOON] 9461번 : 파도반 수열 (JAVA) (0) | 2023.03.26 |
[BAEKJOON] 14501번 : 퇴사 (JAVA) (0) | 2023.03.26 |
[BAEKJOON] 11507번 : 오르막수 (JAVA) (0) | 2023.03.24 |