관리 메뉴

기억을 위한 기록들

[백준 11725 : 트리의 부모 찾기] - C++ 본문

Coding Test - cpp/DFS

[백준 11725 : 트리의 부모 찾기] - C++

에드윈H 2021. 1. 21. 14:45

www.acmicpc.net/problem/11725

 

11725번: 트리의 부모 찾기

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

www.acmicpc.net

#include<iostream>
#include<vector>

using namespace std;
int n;
vector<int> info[100001];
bool checkArr[100001];
int result[100001];

void D(int _n)
{
	for (int i = 0; i < static_cast<signed>(info[_n].size()); i++)
	{
		int target = info[_n][i];
		if (checkArr[target] == false)
		{
			checkArr[target] = true;
			result[target] = _n;
			D(target);
		}
	}
}

int main()
{
	cin.tie(NULL);
	ios_base::sync_with_stdio(false);
	cin >> n;
	int input1;
	int input2;

	//양방향 입력
	for (int i = 0; i < n - 1; i++)
	{
		cin >> input1 >> input2;
		info[input1].push_back(input2);
		info[input2].push_back(input1);
	}

	checkArr[1] = true;
	result[1] = 1;

	//재귀 시작
	D(1);

	for (int i = 2; i <= n; i++)
	{
		cout << result[i] << '\n';
	}

	return 0;
}

'Coding Test - cpp > DFS' 카테고리의 다른 글

[백준 13565: 침투] - C++  (0) 2021.02.01
[백준 2644: 촌수계산] - C++  (0) 2021.01.21
[백준 2606 : 바이러스] - C++  (0) 2021.01.11
미로탐색(DFS)  (0) 2021.01.08
특정 수 만들기 (DFS)  (0) 2021.01.08