📍문제

📍풀이
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 Boj11724 {
static List<List<Integer>> adjList;
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());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
adjList = new ArrayList<>();
for (int i = 0; i <= N; i++) {
adjList.add(new ArrayList<>());
}
for (int i = 0; i < M; i++) {
st = new StringTokenizer(br.readLine());
int u = Integer.parseInt(st.nextToken());
int v = Integer.parseInt(st.nextToken());
adjList.get(u).add(v);
adjList.get(v).add(u);
}
visited = new boolean[N+1];
count = 0;
for (int i = 1; i <= N; i++) {
if (!visited[i]) {
dfs(i);
count++;
}
}
System.out.println(count);
}
static void dfs(int start){
visited[start] = true;
for (int target : adjList.get(start)) {
if (!visited[target]) {
dfs(target);
}
}
}
}
