Programming/Baekjoon

백준 5567 c++ [결혼식]

fishersheep 2022. 5. 5. 17:17
반응형
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <queue>
#include <set>

using namespace std;

int n, m;
vector<int>v[10001];
int t1, t2;
set<int>s;

void bfs(int start)
{
	queue<pair<int, int>>q;
	q.push({ start,0 });

	while (!q.empty())
	{
		int qx = q.front().first;
		int qcnt = q.front().second;
		q.pop();

		if (qcnt > 2)continue;	//qcnt가 2보다 크다면 상근이의 친구 및 친구의친구가 아닌경우

		s.insert(qx);

		for (int i = 0; i < v[qx].size(); i++)
			q.push({v[qx][i], qcnt+1});
	}
}


int main()
{	
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	cin >> n;	//동기의 수
	cin >> m;	//리스트의 길이

	for (int i = 0; i < m; i++)
	{
		cin >> t1 >> t2;
		v[t1].push_back(t2);	//양방향으로 연결
		v[t2].push_back(t1);
	}

	bfs(1);	
	
	cout << s.size()-1;	//set의 size가 상근이와 연결된 동기의수, 상근이는 빼야함으로 -1

	return 0;
}
반응형

'Programming > Baekjoon' 카테고리의 다른 글

백준 1927 c++ [최소힙]  (0) 2022.05.07
백준 1051 c++ [숫자정사각형]  (0) 2022.05.06
백준 16943 c++ [숫자재배치]  (0) 2022.05.05
백준 1527 c++ [금민수의개수]  (0) 2022.05.04
백준 1063 c++ [킹]  (0) 2022.05.04