알고리즘/백준

5567 결혼식

맛있는김치찜 2020. 10. 12. 00:55
#include <iostream>
#include <vector>

using namespace std;

vector<int> graph[501];
bool visit[501] = {false, };

int bfs(int startV)
{
    int numF = 0;

    visit[startV] = true;
    numF += graph[startV].size();

    for (int i : graph[startV]) visit[i] = true;

    for (int i : graph[startV]) {
        for (int j : graph[i]) {
            if (visit[j] == false) {
                visit[j] = true;
                numF++;                    
            }
        }
    }
    return numF;
}

void input()
{
    int numV, numE;
    int tmp1, tmp2;

    cin >> numV;
    cin >> numE;
    for (int i = 0; i < numE; i++) {
        cin >> tmp1 >> tmp2;
        graph[tmp1].push_back(tmp2);
        graph[tmp2].push_back(tmp1);
    }
}

int main(void)
{
    input();
    cout << bfs(1) << endl;

    return 0;
}

처음에는 bfs를 사용해 해결하려고 했다.

하지만 생각해보니 친구의 친구까지만 초대하면 되는거라서 그냥 for문을 2번 돌렸다.

벡터 순회할때 반복자 써봤는데 정말 편하다.

'알고리즘 > 백준' 카테고리의 다른 글

1926 그림  (0) 2020.10.12
2251 물통  (0) 2020.10.12
2234 성곽  (0) 2020.10.12
2023 신기한 소수  (0) 2020.10.12
1405 미친 로봇  (0) 2020.10.11