알고리즘/DFS & BFS

[백준] 11724 연결 요소의 개수

HJ39 2023. 5. 7. 22:04

해당 문제는 1차원 배열을 이용하여 해결할 수 있는 문제이다.

 

dfs로 구현하였고, 헷갈리지만 않는다면 쉽게 풀 수 있다.

 

□ 소스코드

#include <bits/stdc++.h>

using namespace std;

vector<int> input11724[1001];
vector<bool> check11724(1001,false);

void dfs11724(int x){
    
    check11724[x] = true;
    
    for(int i=0;i<input11724[x].size();i++){
        int next = input11724[x][i];
        if(!check11724[next]){
            dfs11724(next);
        }
    }
}

void connect11724(){
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    
    int N,M; cin>>N>>M;
    
    for(int i=0;i<M;i++){
        int a,b; cin>>a>>b;
        input11724[a].push_back(b);
        input11724[b].push_back(a);
    }
    
    int result = 0;
    for(int i=1;i<=N;i++){
        if(!check11724[i]){
            result++;
            dfs11724(i);
        }
    }
    
    cout<<result<<"\n";
}

 

□ 유용한 반례

4 3
2 3
3 4
4 1
ANS: 1

'알고리즘 > DFS & BFS' 카테고리의 다른 글

[백준] 4963 섬의 개수  (0) 2023.05.07
[백준] 10026 적록색약  (0) 2023.05.07
백준[2206] 벽 부수고 이동하기  (0) 2023.02.05
백준[16928] 뱀과 사다리 게임  (0) 2023.01.30
백준[7569] 토마토  (0) 2023.01.27