11725번: 트리의 부모 찾기
루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오.
www.acmicpc.net
아이디어:
그냥 시작하는 부분을 1로 하고 DFS 탐색을 하면서 부모노드를 저장해주면 되는 간단한 문제였다.
import sys
N = int(sys.stdin.readline())
graph = [[] for _ in range(N+1)]
for _ in range(N-1):
a, b = map(int, sys.stdin.readline().split())
graph[a].append(b)
graph[b].append(a)
stack = []
stack.append(1)
visit = [False]*(N+1)
visit[1] = True
ans = [0]*(N+1)
while (stack):
n = stack.pop()
for i in graph[n]:
if (visit[i]==False):
visit[i] = True
stack.append(i)
ans[i] = n
for i in range(2,N+1):
print(ans[i])
'알고리즘💻 > 트리' 카테고리의 다른 글
BOJ 2263번: 트리의 순회 (0) | 2021.02.09 |
---|---|
BOJ 1967번: 트리의 지름 (0) | 2021.02.08 |
BOJ 5639번: 이진 검색 트리 (0) | 2021.02.08 |
BOJ 1991번: 트리 순회 (0) | 2021.02.08 |
BOJ 1068번: 트리 (0) | 2021.02.08 |