반응형
https://www.acmicpc.net/problem/11724
11724번: 연결 요소의 개수
첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주
www.acmicpc.net
import java.util.*;
public class Main {
static Queue<Integer> qu = new LinkedList<>();
static int cnt =0 ;
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int M = sc.nextInt();
int[][] arr = new int[N+1][N+1];
boolean[] check = new boolean[N+1];
for(int i=0;i<M;i++) {
int a=sc.nextInt();
int b=sc.nextInt();
arr[a][b]=1;
arr[b][a]=1;
}
bfs(arr,check,1);
System.out.println(cnt);
}// main()
static void bfs(int[][]f, boolean[] c, int k ) {
qu.add(k);
c[k]=true;
while(!qu.isEmpty()) {
k=qu.poll();
for(int i=1;i<f[k].length;i++) {
if(f[i][k]==1&&!c[i]) { //k와 인접한 정점을 확인
qu.add(i);
c[i]=true;
}
}
}
cnt++;
for(int i=1;i<c.length;i++) { //아직 확인 하지 않은 정점 체크
if(!c[i])
bfs(f,c,i);
}
}//bfs()
}// class Main
728x90
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
백준 1541 : 잃어버린 괄호 _자바 Java (0) | 2023.01.23 |
---|---|
백준 2805 : 나무 자르기 _자바 Java (0) | 2023.01.23 |
백준 4948 : 베르트랑 공준 _자바 Java (0) | 2023.01.21 |
백준 1912 : 연속합 _자바 Java (0) | 2023.01.21 |
백준 11053 : 가장 긴 증가하는 수열 _자바 Java (0) | 2023.01.21 |
댓글