알고리즘/그래프

[백준/그래프/C++] 5567번 결혼식

데메즈 2023. 2. 23. 11:09
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