[BFS / DFS] [백준 / 11724 ] 실버2 - 연결 요소의 개수 (java/자바)

SlowAnd·2024년 2월 14일
0
post-thumbnail

[BFS / DFS] [백준 / 11724 ] 실버2 - 연결 요소의 개수 (java/자바)

문제

성공 코드

package newboj;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

public class boj_11724 {
    static List<Integer>[] matrix;
    static boolean isVisited[];

    public static void main(String[] args) throws IOException {
        BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(r.readLine());
        int N = Integer.parseInt(st.nextToken());
        int M = Integer.parseInt(st.nextToken());

        int count =0;

        matrix = new ArrayList[N+1];
        isVisited = new boolean[N+1];
        for (int i = 0; i < N+1; i++) {
            matrix[i] = new ArrayList<>();
        }

        while (M-- > 0) {
            StringTokenizer st1 = new StringTokenizer(r.readLine());
            int start = Integer.parseInt(st1.nextToken());
            int end = Integer.parseInt(st1.nextToken());
            matrix[start].add(end);
            matrix[end].add(start);
        }
        for(int i=1; i<N+1; i++){
            if(!isVisited[i]){
                dfs(i);
                count++;
            }
        }
        System.out.println(count);
    }
    static void dfs(int index){
        isVisited[index] =true;

        for(int i=0; i<matrix[index].size(); i++){
            if(!isVisited[matrix[index].get(i)]){
                dfs(matrix[index].get(i));
            }
        }
    }
}

0개의 댓글