녕의 학습 기록
백준_11403 경로 찾기 (플로이드-워셜) 본문


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class BJ_11403_경로찾기 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[][] distance = new int[n][n];
int i, j;
StringTokenizer st;
for (i=0; i<n; i++) {
st = new StringTokenizer(br.readLine(), " ");
for (j=0; j<n; j++) {
distance[i][j] = Integer.parseInt(st.nextToken());
}
}
int k, s, e;
for (k=0; k<n; k++) {
for (s=0; s<n; s++) {
for (e=0; e<n; e++) {
if (distance[s][e]==0) {
if (distance[s][k]==1 && distance[k][e]==1) {
distance[s][e] = 1;
}
}
}
}
}
StringBuilder sb = new StringBuilder();
for (i=0; i<n; i++) {
for (j=0; j<n; j++) {
sb.append(distance[i][j]).append(' ');
}
sb.append('\n');
}
System.out.println(sb);
}
}
11403번: 경로 찾기
가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 길이가 양수인 경로가 있는지 없는지 구하는 프로그램을 작성하시오.
www.acmicpc.net
'Algorithm > Algorithm 문제' 카테고리의 다른 글
백준_1197_최소스패닝트리 (mst) (1) | 2024.03.02 |
---|---|
백준_1389 케빈 베이컨의 6단계 법칙 (플로이드-워셜) (1) | 2024.02.29 |
백준_11404 플로이드 (플로이드-워셜) (1) | 2024.02.27 |
백준_1219 오민식의 고민 (벨만-포드) (1) | 2024.02.26 |
백준_11657 타임머신 (벨만-포드) (0) | 2024.02.25 |