1068번

seuls2·2023년 10월 4일

BOJ

목록 보기
55/55
post-thumbnail

1068

#include <iostream>
#include <vector>

using namespace std;

int n;
vector<int> v[50];

void deleteNodes(int rootNode)
{
    for (int i = 0; i < v[rootNode].size(); i++)
    {
        int node = v[rootNode][i];
        v[rootNode][i] = -1;
        deleteNodes(node);
    }
    if (v[rootNode].size() == 0)
    {
        v[rootNode].push_back(-1);
    }
}

int main()
{
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        int root;
        cin >> root;
        if (root > -1)
        {
            v[root].push_back(i);
        }
    }
    int rootNode;
    cin >> rootNode;

    deleteNodes(rootNode);

    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < v[i].size(); j++)
        {
            if (v[i][j] == rootNode)
            {
                v[i].erase(v[i].begin() + j);
                break;
            }
        }
    }

    int answer = 0;
    for (int i = 0; i < n; i++)
    {
        if (v[i].size() == 0)
        {
            answer++;
        }
    }
    cout << answer;
}
profile
공부 기록용 ( ᵕ·̮ᵕ )♩

0개의 댓글