Deff_Dev

[백준] 11724번 연결 요소의 개수 (C++) 본문

코딩테스트/백준

[백준] 11724번 연결 요소의 개수 (C++)

Deff_a 2024. 8. 31. 17:04

문제

 

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


풀이

BFS를 이용해 모든 노드를 탐색하고 연결 요소의 개수를 구하는 방법으로 풀이했다.

#include<iostream>
#include<vector>
#include<queue>

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

using namespace std;

int N, M;
vector<int> vec[1001];

bool visited[1001] = { false, };

void BFS(int startPos) {
	queue <int>q;

	q.push(startPos);
	visited[startPos] = true;

	while (!q.empty()) {
		int target = q.front();
		q.pop();


		for (int i = 0; i < vec[target].size(); i++) {
			if (!visited[vec[target][i]]) {
				visited[vec[target][i]] = true;
				q.push(vec[target][i]);
			}
		}
	}
}

int main() {
	cin >> N >> M;

	int s1, s2;
	for (int i = 0; i < M; i++) {
		cin >> s1 >> s2;
		vec[s1].push_back( s2 );
		vec[s2].push_back( s1 );
	}

	int count = 0;
	for (int i = 1; i <= N; i++) {
		if (!visited[i]) {
			BFS(i);
			count++;
		}
	}

	cout << count;
	return 0;
}

'코딩테스트 > 백준' 카테고리의 다른 글

[백준] 1461번 도서관 (C++)  (2) 2024.09.02
[백준] 1058번 친구 (C++)  (0) 2024.09.02
[백준] 1916번 최소비용 구하기 (C++)  (0) 2024.08.30
[백준] 15954번 N과 M (5) (C++)  (0) 2024.08.30
[백준] 11723번 집합 (C++)  (0) 2024.08.30