728x90
반응형

https://www.acmicpc.net/problem/2606

 

2606번: 바이러스

첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어

www.acmicpc.net

 

[ 백준 2606번 바이러스 - 유니온 파인드 ]

#include <iostream>
using namespace std;
int parent[101];
int Find(int x) {
    if (x == parent[x]) {
        return x;
    } else {
        return parent[x] = Find(parent[x]);
    }
}
void Union(int x, int y) {
    x = Find(x);
    y = Find(y);
    if (x != y) {
        parent[y] = x;
    }
}
int main() {
    int n, m;
    cin >> n >> m;
    for (int i=1; i<=n; i++) {
        parent[i] = i;
    }
    while (m--) {
        int x, y;
        cin >> x >> y;
        Union(x, y);
    }
    int ans = 0;
    for (int i=2; i<=n; i++) {
        if (Find(1) == Find(i)) {
            ans += 1;
        }
    }
    cout << ans << '\n';
    return 0;
}
반응형
Posted by 명문코딩컴퓨터
,