본문 바로가기

알고리즘/백준 (JAVA)

백준 2606 바이러스 / java 자바

www.acmicpc.net/problem/2606

 

2606번: 바이러스

첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어

www.acmicpc.net

 

import java.util.Scanner;

public class Main {
	static int[][] map;
	static boolean[] ck;
	static int N, M;
	
	static void sol(int com) {
		ck[com] = true;
		for (int i = 0; i < N; i++) {
			if (map[com][i] == 1 && !ck[i]) sol(i);
		}
	}
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		N = sc.nextInt();
		M = sc.nextInt();
		map = new int[N][N];
		ck = new boolean[N];
		for (int i = 0; i < M; i++) {
			int x = sc.nextInt();
			int y = sc.nextInt();
			map[x-1][y-1] = map[y-1][x-1] = 1;
		}
		sol(0);
		int cnt = -1;
		for (boolean c : ck) {
			if (c) cnt++;
		}
		System.out.println(cnt);
	}
}