본문 바로가기
알고리즘/SW Expert

SW expert 사람 네트워크2 (자바)

by 김어찐 2021. 9. 16.
728x90
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class algo_1263_김어진 {

	public static void main(String[] args) throws Exception {
		System.setIn(new FileInputStream("input.txt"));

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;
		st = new StringTokenizer(br.readLine()," ");
		int T;
		T= Integer.parseInt(st.nextToken());
		
		int INF = 100000000;
		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][N];
			for (int i = 0; i < N; i++) {
				for (int j = 0; j < N; j++) {
					graph[i][j]=Integer.parseInt(st.nextToken());
				}
			}
			for (int i = 0; i < N; i++) {
				for (int j = 0; j < N; j++) {
					if(graph[i][j]==0 && i!=j) {
						graph[i][j]=INF;
					}
				}
			}
			
			for (int k = 0; k < N; k++) {
				for (int i = 0; i < N; i++) {
					for (int j = 0; j < N; j++) {
						graph[i][j] = Math.min(graph[i][j], graph[i][k]+graph[k][j]);
					}
				}
			}
			
			int minValue = Integer.MAX_VALUE;
			for (int i = 0; i < N; i++) {
				int count = 0;
				for (int j = 0; j < N; j++) {
					if(graph[i][j]!=INF) {
						count+= graph[i][j];
					}
				}
				if(minValue>count) {
					minValue=count;
			
				}
			}
			System.out.printf("#%d %d\n",test_case,minValue);
		}

	}

}
728x90

'알고리즘 > SW Expert' 카테고리의 다른 글

SW Expert 보급로 (자바)  (0) 2021.09.30
SW expert 3124 최소 스패닝 트리 (자바)  (0) 2021.09.16
SW Expert 3307 최장 증가 부분수열 (자바)  (0) 2021.09.16
1251 하나로  (0) 2021.08.25