acmicpc
[BAEKJOON] 2606. 바이러스
코드와이
2021. 2. 19. 16:50
문제링크
2606번: 바이러스
첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어
www.acmicpc.net
package acmicpc.Silver3;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;
public class 바이러스 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int n = Integer.parseInt(br.readLine());
int m = Integer.parseInt(br.readLine());
int[][] arr = new int[n + 1][n + 1];
boolean[] visited = new boolean[n + 1];
Queue<Integer> queue = new LinkedList<Integer>();
for(int i = 0 ; i < m ; i++) {
st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
arr[a][b] = 1;
arr[b][a] = 1;
}
int ans = 0;
queue.offer(1);
while(!queue.isEmpty()) {
int q = queue.poll();
for(int i = 1 ; i <= n ; i++) {
if( !visited[i] && arr[q][i] == 1) {
queue.offer(i);
ans += 1;
visited[i] = true;
}
}
}
System.out.println(ans - 1);
}
}