보라코딩

백준 자바 :: 바이러스 본문

백준(java)

백준 자바 :: 바이러스

new 보라 2024. 7. 17. 19:01

 

 

 

import java.util.*;
import java.io.*;

public class Main{

    static int node;
    static int line;

    static int[][] array;
    static boolean[] visited;

    static int count;

    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        node = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());
        line = Integer.parseInt(st.nextToken());

        array = new int[node+1][node+1];
        visited = new boolean[node+1];

        for(int i = 0; i < line; i++){
            st = new StringTokenizer(br.readLine());
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
            array[a][b] = array[b][a] = 1;
        }

        DFS(1);

        System.out.println(count-1);
    }

    static void DFS(int start){

        count++;
        visited[start] = true;

        for(int i = 1; i <= node; i++){
            if(array[start][i] == 1 && !visited[i]){
                DFS(i);
            }
        }
    }
}