728x90
※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다.
728x90
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
StringBuilder sb = new StringBuilder();
int T = Integer.parseInt(br.readLine());
for (int test_case = 1; test_case <= T; test_case++) {
st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int[][] graph = new int[N + 1][N + 1];
for (int i = 1; i <= N; i++) {
Arrays.fill(graph[i], N * N);
graph[i][i] = 0;
}
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= N; j++) {
int tmp = Integer.parseInt(st.nextToken());
if(tmp == 1) graph[i][j] = 1;
}
}
// 플로이드 워셜
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= N; j++) {
for (int k = 1; k <= N; k++) {
graph[j][k] = Math.min(graph[j][k], graph[j][i] + graph[i][k]);
}
}
}
int result = Integer.MAX_VALUE;
for (int i = 1; i <= N; i++) {
int sum = 0;
for (int j = 1; j <= N; j++) {
sum += graph[i][j];
}
result = Math.min(result, sum);
}
sb.append("#" + test_case + " " + result + "\n");
}
System.out.println(sb);
}
}
728x90
'Problem Solving > SWEA' 카테고리의 다른 글
[SW Expert Academy, SWEA 4014] [모의 SW 역량테스트] 활주로 건설 (java) (0) | 2023.04.07 |
---|---|
[SW Expert Academy, SWEA 5643] [Professional] 키 순서 (java) (0) | 2023.04.04 |
[SW Expert Academy, SWEA 3307] 최장 증가 부분 수열 (java) (0) | 2023.04.01 |
[SW Expert Academy, SWEA 1230] [S/W 문제해결 기본] 8일차 - 암호문3 (java) (0) | 2023.03.25 |
[SW Expert Academy, SWEA 2115] [모의 SW 역량테스트] 벌꿀채취 (java) (0) | 2023.03.11 |