백준 11724번 연결 요소의 개수

veloger·2023년 1월 25일
0


package test;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Deque;
import java.util.StringTokenizer;

public class BaekJoonQ11724_P148_Q23 {
 	static ArrayList<Integer>[] list;
 	static boolean[] visit;
 	
 	private static void dfs(int crnt) {
 		if(visit[crnt]) {
 			return ;
 		}
 		else {
 			visit[crnt] = true;
 			for(int next:list[crnt]) {
 				if(!visit[next])
 					dfs(next);
 			}
 		}
	}

 	
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedReader br =new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw =new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer st =new StringTokenizer(br.readLine());
		int node = Integer.parseInt(st.nextToken());
		int edge = Integer.parseInt(st.nextToken());
		visit =new boolean[node+1];
		int count =0;
		
		list =new ArrayList[node+1];
		for(int i=1;i<list.length;i++) {
			list[i] = new ArrayList<>();
		}
		
		for(int i=0;i<edge;i++) {
			st =new StringTokenizer(br.readLine());
			int a = Integer.parseInt(st.nextToken());
			int b= Integer.parseInt(st.nextToken());
			list[a].add(b);
			list[b].add(a);
		}
		
	
		for(int i=1;i<list.length;i++) {
			if(!visit[i]) {
				++count;
				dfs(i);
			}
		}
		
		bw.write(Integer.toString(count));
		bw.flush();
	}
}

0개의 댓글