Skip to content

Commit ad1da9e

Browse files
authored
백준 트리 dfs
1 parent 9ac3b5c commit ad1da9e

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

1068.cpp

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#include <iostream>
2+
#include <vector>
3+
#include <algorithm>
4+
5+
using namespace std;
6+
7+
int root, del, leaf;
8+
vector<int> v[51];
9+
10+
int dfs(int node){
11+
if(node == del)
12+
return -1;
13+
if(!v[node].size()){
14+
leaf++;
15+
return 0;
16+
}
17+
for(int i = 0; i < v[node].size(); i++){
18+
int tmp = dfs(v[node][i]);
19+
if(tmp == -1 && v[node].size() == 1)
20+
leaf++;
21+
}
22+
return 0;
23+
}
24+
25+
int main() {
26+
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
27+
28+
int N; cin >> N;
29+
30+
int num;
31+
int idx = 0;
32+
for(int i = 0; i < N; i++){
33+
cin >> num;
34+
if(num == -1)
35+
root = i;
36+
else v[num].push_back(i);
37+
}
38+
cin >> del;
39+
dfs(root);
40+
41+
cout << leaf << '\n';
42+
}

0 commit comments

Comments
 (0)