한줄 후기 : 결혼식은 친구만 불러라
https://www.acmicpc.net/problem/5567
5567번: 결혼식
문제 상근이는 자신의 결혼식에 학교 동기 중 자신의 친구와 친구의 친구를 초대하기로 했다. 상근이의 동기는 모두 N명이고, 이 학생들의 학번은 모두 1부터 N까지이다. 상근이의 학번은 1이다. 상근이는 동기들의 친구 관계를 모두 조사한 리스트를 가지고 있다. 이 리스트를 바탕으로 결혼식에 초대할 사람의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이의 동기의 수 n (2 ≤ n ≤ 500)이 주어진다. 둘째 줄에는 리스트의 길이 m (1 ≤ m
www.acmicpc.net
BFS를 돌려야 한다.
단 친구의 친구까지만 포함되도록!
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
bool visit[502]={false};
vector<int> met[502];
void bfs(int start);
int cnt = 0;
int main(){
int n, m;
cin >> n >> m;
for(int i = 0; i<m; i++){
int u, v;
cin >> u >> v;
met[u].push_back(v);
met[v]. push_back(u);
}
bfs(1);
cout << cnt;
}
void bfs(int start){
queue<int> q;
visit[start] = true;
q.push(start);
for(int i=0; i<= met[start].size(); i++){
int now = q.front();
q.pop();
for(int j=0; j<met[now].size(); j++){
int next = met[now][j];
if(visit[next]==false){
visit[next] = true;
q.push(next);
cnt++;
}
}
}
}
'DEV > PS' 카테고리의 다른 글
[1904] 01 타일, c++ (0) | 2019.07.26 |
---|---|
[1003] 피보나치 함수, c++ (0) | 2019.07.26 |
[10451] 순열 싸이클, C++ (0) | 2019.07.24 |
[7576] 토마토, C++ (0) | 2019.07.24 |
[2606] 바이러스, C++ (0) | 2019.07.24 |