728x90
![[SWEA] 1263 사람 네트워크 2 - JAVA [SWEA] 1263 사람 네트워크 2 - JAVA](https://blog.kakaocdn.net/dn/nbJW6/btrymGPzTik/U2EnM9fbzgNDDVfKnUFn31/img.jpg)
1. 문제
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!...
swexpertacademy.com
2. 풀이
- 사람 수만큼 BFS 탐색하고 그 최솟값을 출력했다.
import java.io.*; import java.util.*; public class D6_1263_사람네트워크2 { public static void main(String[] args) throws IOException { BufferedReader in =new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); StringTokenizer st; int T = Integer.parseInt(in.readLine()); for(int tc=1;tc<=T;tc++){ st = new StringTokenizer(in.readLine()); int N = Integer.parseInt(st.nextToken()); int[][] adj = new int[N][N]; for(int i=0;i<N;i++){ for(int j=0;j<N;j++){ adj[i][j] = Integer.parseInt(st.nextToken()); } } int min = Integer.MAX_VALUE; for(int i=0;i<N;i++){ int tmp = 0; int[] visited = new int[N]; Queue<Integer> queue = new ArrayDeque<>(); queue.offer(i); while(!queue.isEmpty()){ int x = queue.poll(); for(int j=0;j<N;j++){ if(i==j) continue; if(visited[j]!=0 || adj[x][j]==0) continue; visited[j] = visited[x]+1; tmp += visited[j]; queue.offer(j); } } if(min>tmp) min = tmp; } sb.append("#").append(tc).append(" ").append(min).append("\n"); } System.out.print(sb); } }
3. 결과
![[SWEA] 1263 사람 네트워크 2 - JAVA - 3. 결과 [SWEA] 1263 사람 네트워크 2 - JAVA - 3. 결과](https://blog.kakaocdn.net/dn/cqeJQB/btryrXC2eQU/cmfcMdX9G5hqUw0MP0VyvK/img.png)
'코딩테스트 > SWEA' 카테고리의 다른 글
[SWEA] 1249 보급로 - JAVA (0) | 2022.04.07 |
---|---|
[SWEA] 5643 키 순서 - JAVA (0) | 2022.04.07 |
[SWEA] 3124 최소 스패닝 트리 - JAVA (0) | 2022.03.31 |
[SWEA] 1251 하나로 - JAVA (0) | 2022.03.01 |
[SWEA] 7465 창용 마을 무리의 개수 - JAVA (0) | 2022.02.23 |
댓글