<aside> 💛
시간제한 : 1초, 난이도 : 실버 1, 백준 : 11403번
</aside>
i → k, k → j 모두 있으면 i → j 가 있음
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Practice62 {
public static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
public static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
static int N;
static int distance[][];
public static void main(String[] args) throws IOException{
N = Integer.parseInt(br.readLine());
distance = 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 v = Integer.parseInt(st.nextToken());
distance[i][j] = v;
}
}
for(int k = 0; k < N; k++) {
for(int i = 0; i < N; i++) {
for(int j = 0; j < N; j++) {
if(distance[i][k] == 1 && distance[k][j] == 1)
distance[i][j] = 1;
}
}
}
for(int i = 0 ;i < N; i++) {
for(int j = 0; j < N; j++) {
System.out.print(distance[i][j] + " ");
}
System.out.print("\\n");
}
}
}