본문 바로가기

Algorithm/BAEKJOON

[BOJ] 11725번 트리의 부모 찾기 (C++)

728x90
반응형

https://www.acmicpc.net/problem/11725

 

11725번: 트리의 부모 찾기

루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오.

www.acmicpc.net

 

#include <iostream>
#include <vector>
#include <queue>
using namespace std;
 
int parent[100001];
bool visited[100001];
 
int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
 
	int n;
	cin >> n;
	vector<int> node[100001];
	for(int i = 0; i < n - 1; i++){
		int x, y;
		cin >> x >> y;
		node[x].push_back(y);
		node[y].push_back(x);
	}
 
	queue<int> q;
	q.push(1);
	visited[1] = true;
	while(!q.empty()){
		int cur = q.front();
		q.pop();
		for(int i = 0; i < node[cur].size(); i++){
			int next = node[cur][i];
			if(!visited[next]){
				parent[next] = cur;
				visited[next] = true;
				q.push(next);
			}
		}
	}
 
	for(int i = 2; i <= n; i++){
		cout << parent[i] << '\n';
	}
	return 0;
}
728x90
반응형