본문 바로가기

알고리즘/문제풀이

[2606] 바이러스

반응형

https://www.acmicpc.net/problem/2606


import java.util.Scanner;
import java.util.ArrayList;

public class Main {
	
	static ArrayList<Integer>[] list;
	static boolean[] visited;
	static int answer;
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();
		int M = sc.nextInt();
		
		list = new ArrayList[N+1];
		visited = new boolean[N+1];
		
		for(int i=0; i<=N; i++) {
			list[i] = new ArrayList<Integer>();
		}
		
		for(int i=0; i<M; i++) {
			int A = sc.nextInt();
			int B = sc.nextInt();
			
			list[A].add(B);
			list[B].add(A);
		}
		
		DFS(1);
		System.out.println(answer);
	}
	
	public static void DFS(int x) {
		visited[x] = true;
		
		for(int i=0; i<list[x].size(); i++) {
			int next = list[x].get(i);
			
			if(!visited[next]) {
				DFS(next);
				answer++;
			}
		}
	}
}

 

반응형

'알고리즘 > 문제풀이' 카테고리의 다른 글

[2146] 다리 만들기  (0) 2019.10.13
[5502] 팰린드롬  (0) 2019.09.25
[11051] 이항 계수 2  (0) 2019.09.21
[1389] 케빈 베이컨의 6단계 법칙  (0) 2019.09.21
[9251] LCS  (0) 2019.09.21