• Home
  • About
    • Ryureka Moment photo

      Ryureka

      Sin Prisa, Sin Pausa

    • About Me
    • Facebook
    • Github
    • Youtube
  • Projects
  • Posts
    • Posts
    • ProblemSolvings
    • Tags
    • Blog
    • Examples
  • ProblemSolving
    • ProblemSolving
    • BOJ
    • Programmers
    • SWEA
    • LeetCode
  • FrontEnd
    • FrontEnd
    • HTML
  • BackEnd
    • BackEnd
    • Server
      • Server
      • Spring
      • NodeJS
    • DataBase
      • DataBase
      • MySQL
      • MongoDB
  • Programming
    • Programming
    • Java
    • JS
    • Python
    • CleanCode
  • ComputerScience
    • DataStructure
    • Algorithm

[BOJ] 11724. 연결 요소의 개수

15 Apr 2026

Reading time ~1 minute

  • 풀이

풀이

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

public class Main {
	static boolean check[];
	static int map[][];
	static int N;
	static int cnt;
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		N=sc.nextInt();
		int M=sc.nextInt();
		map=new int [N+1][N+1];
		check=new boolean [N+1];
		for(int i=0;i<M;i++) {
			int a=sc.nextInt();
			int b=sc.nextInt();
			map[a][b]=1;
			map[b][a]=1;
		}
		for(int i=1;i<=N;i++) {
			if(check[i]) continue;
			bfs(i);
		}
		System.out.println(cnt);
	}
	
	public static void bfs(int st) {
		cnt++;
		Queue<Integer> q=new LinkedList<>();
		q.add(st);
		check[st]=true;
		while(!q.isEmpty()) {
			int cur=q.poll();
			for(int i=1;i<=N;i++) {
				if(!check[i]&&map[cur][i]==1) {
					check[i]=true;
					q.add(i);
				}
			}
		}
	}
}


BFS Share