노드가 추가될 때 마다, 그 인덱스를 출력하면 된다. 노드가 추가될 수 있다는건 루트 역할 하는 거고, 그 때 인덱스가 루트니까.
import sys
sys.stdin = open('input.txt','rt')
input = sys.stdin.readline
n = int(input())
tree = [[] for _ in range(n+1)]
ans = [0] * (n+1)
for i in range(n-1):
a, b = map(int, input().split())
tree[a].append(b)
tree[b].append(a)
# print(tree)
# [[], [6, 4], [4], [6, 5], [1, 2, 7], [3], [1, 3], [4]]
check = [False] * (n+1)
def DFS(e,v):
check[v] = True
for i in e[v]: # 연결되어 있는 노드
if not check[i]: # 방문 안했으면 ans에 입력후 재귀
ans[i] = v
DFS(e,i)
DFS(tree,1)
for i in range(2, n+1):
print(ans[i])
* 참고
'⚡️algorithm' 카테고리의 다른 글
[DFS, BFS] 백준 2644. 촌수 (+ 간략하게 출력하기) (0) | 2022.05.02 |
---|---|
[DFS, BFS] 백준 1260. DFS와 BFS (0) | 2022.05.02 |
[그래프] 백준 1991. 트리 순회 (전위 순회, 중위 순회, 후위 순회) (0) | 2022.04.29 |
[완전탐색, 파이썬] 백준 1107. 리모컨 (0) | 2022.04.29 |
[완전탐색, 파이썬] 백준 1476. 날짜계산 (0) | 2022.04.29 |