반응형

 

 

<코드>

#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
using namespace std;

int N, u, v;
int parent[100001];
bool visit[100001];
vector<int> node[100001];
queue<int> q;

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);

	cin >> N;

	for (int i = 1; i < N; i++)
	{
		cin >> u >> v;
		node[u].push_back(v);
		node[v].push_back(u);
	}

	q.push(1);
	visit[1] = true;

	while (!q.empty())
	{
		int now = q.front();
		q.pop();

		for (int i = 0; i < node[now].size(); i++)
		{
			int next = node[now][i];

			if (!visit[next])
			{
				q.push(next);
				visit[next] = true;
				parent[next] = now;
			}
		}
	}
	
	for (int i = 2; i <= N; i++)
	{
		cout << parent[i] << '\n';
	}

}

 

 

 

 

www.acmicpc.net/problem/11725

 

11725번: 트리의 부모 찾기

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

www.acmicpc.net

 

반응형

+ Recent posts