Algorithm/백준
백준 11724번 연결 요소의 개수 (c++)
파란제이
2020. 10. 1. 22:21
1부터 n까지 방문하지 않은 노드를 확인할 때마다, 해당 노드와 연결된 노드들 전부를 방문하고 정답에 +1을 해준다.
연결된 노드를 방문하는 방식은 BFS를 이용하면 된다.
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
vector<int> node[1010];
int visited[1010];
int main()
{
int n, m;
cin >> n >> m;
for (int i = 1; i <= n; i++)
{
visited[i] = false;
}
for (int i = 0; i < m; i++)
{
int l, r;
cin >> l >> r;
node[l].push_back(r);
node[r].push_back(l);
}
int answer = 0;
for (int i = 1; i <= n; i++)
{
if (visited[i] == false)
{
answer++;
visited[i] = true;
queue<int> q;
q.push(i);
while (!q.empty())
{
int front = q.front();
q.pop();
for (int j = 0; j < node[front].size(); j++)
{
if (visited[node[front][j]] == false)
{
visited[node[front][j]] = true;
q.push(node[front][j]);
}
}
}
}
}
cout << answer << '\n';
return 0;
}
반응형