백준 11725 트리의 부모 찾기
https://www.acmicpc.net/problem/11725
1을 루트라고 했으니 1부터 탐색을 하면 됩니다. (dfs, bfs 아무거나 편한대로 쓰시면 됩니다.)
#include<bits/stdc++.h>
using namespace std;
const int SZ = 100005;
vector<int> graph[SZ];
int parent[SZ]; // 해당 노드의 부모를 저장
void dfs(int prt, int crt){
parent[crt]=prt;
for(int nxt : graph[crt]){
if(nxt!=prt) dfs(crt,nxt); // 현재 노드는 그 다음 노드의 부모가 된다.
}
}
int main(void){
int n; scanf("%d",&n);
for(int i=1;i<n;i++){ // 그래프(트리) 만들기
int a,b; scanf("%d %d",&a,&b);
graph[a].push_back(b);
graph[b].push_back(a);
}
dfs(0,1);
for(int i=2;i<=n;i++) printf("%d\n",parent[i]);
return 0;
}