728x90
#include <iostream>
#include <vector>
using namespace std;
bool findNoMore(int num, vector<vector<int>>&v, vector<int>&parent) {
for (int i = 0; i < v[num].size(); i++ ) {
if (parent[v[num][i]] ==0) {
return false;
}
}
return true;
}
void dfs(vector<int>&parent, vector<vector<int>>&v,int num) {
if (findNoMore(num,v,parent)) {
return;
}
for (int i = 0; i < v[num].size(); i++) {
if (parent[v[num][i]] == 0) {
parent[v[num][i]] = num;
dfs(parent, v, v[num][i]);
}
}
return;
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0); //cin 속도 향상 위해
int n;
cin >> n;
vector<vector<int>>v(n+1);
vector<int>parent(n + 1,0);
int a, b;
parent[1] = -1;
parent[0] = -1;
for (int i = 0; i < n-1; i++) {
cin >> a;
cin >> b;
v[a].push_back(b);
v[b].push_back(a);
}
dfs(parent,v,1);
for (int i = 2; i <= n; i++) {
cout << parent[i] << '\n';
}
}
'백준 > 그래프' 카테고리의 다른 글
최단경로 -1753번 (0) | 2021.08.25 |
---|---|
이진검색트리 - 5639번 (java) (0) | 2021.08.11 |
키 순서 / 플로이드 와샬 (0) | 2021.04.24 |