백준 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;
}