문제링크 : https://www.acmicpc.net/problem/11725
트리순회 문제 다음으로 바로 공부한 문제이다.
루트가 1 번으로 주어졌으므로 bfs나 dfs를 이용해 1번부터 시작해서 노드들을 순회하면 되는 문제이다.
import sys
from collections import deque
input = sys.stdin.readline
n = int(input())
graph = [[] for _ in range(n + 1)]
parent = [0 for _ in range(n + 1)]
for _ in range(n - 1):
a, b = map(int, input().split())
graph[a].append(b)
graph[b].append(a)
def bfs():
q = deque()
q.append(1)
while q:
node = q.popleft()
for i in graph[node]:
if parent[i] == 0:
parent[i] = node
q.append(i)
return parent
bfs()
for i in parent[2:]:
print(i)