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;
}
'백준 문제풀이' 카테고리의 다른 글
백준 10814 나이순 정렬 소스 코드 (0) | 2021.10.08 |
---|---|
백준 2568번 전깃줄 소스코드 (0) | 2021.07.31 |
백준 1181번 단어 정렬 소스 코드 (0) | 2021.07.02 |
백준 2617번 - 구슬찾기 소스 코드 (0) | 2021.06.04 |
백준 1406번 - 에디터 소스 코드 (0) | 2021.05.02 |