[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));
}
}
}
}