728x90
반응형
문제는 여기!
#include <bits/stdc++.h>
using namespace std;
int N, M;
int MAP[501][501];
bool isVisited[501];
int answer = 0;
void solve(){
queue<int> q;
isVisited[1] = true;
for(int i=1; i<=N; i++){
if(MAP[1][i]==1){ // 상근이 친구일 경우
q.push(i);
isVisited[i] = true;
answer++;
}
}
while(!q.empty()){
int x = q.front();
q.pop();
for(int i=1; i<=N; i++){
if(MAP[x][i]==1 && !isVisited[i]){ // 친구의 친구일 경우
isVisited[i] = true;
answer++;
}
}
}
}
void input() {
cin >> N >> M;
for(int i=0; i<M; i++){
int x, y;
cin >> x >> y;
MAP[x][y] = 1;
MAP[y][x] = 1;
}
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
input();
solve();
cout << answer;
return 0;
}
728x90
반응형
'알고리즘 > 그래프' 카테고리의 다른 글
[백준/그래프/C++] 11403번 경로 찾기 (0) | 2023.03.08 |
---|