작성
·
237
0
#include<iostream>
#include<vector>
using namespace std;
int n,d,p,root,visited[54];
vector<int>adj[54];
int dfs(int here){
visited[here]=1;
int ret=0;
if(adj[here].size()==0)return 1;
for(int there:adj[here]){
if(visited[there])continue;
ret+=dfs(there);
}
return ret;
}
int main(){
cin >> n;
for(int i=0;i<n;i++){
cin >> p;
if(p==-1){
root=i;
continue;
}
adj[p].push_back(i);
}
cin >> d;
if(d==root)cout<<0<<"\n";
else{
visited[d]=1;
cout << dfs(root) << "\n";
}
}
저거 링크로 남겨주시면 됩니다. ㅎㅎ 방법은 0주차 : 질문하는 법에 제가 설명드리고 있어용