문제 링크 : https://www.acmicpc.net/problem/11725
학교 수업 때문에 한 2주 정도 C++만 다루다가 오랜만에 Python을 다뤘더니 적응이 살짝 안됐던 문제.
처음 세팅을 undirected graph 로 세팅한 뒤, root node 1에 대해서 DFS를 수행하여 풀었다.
sys.setrecursionlimit(10**6) 으로 재귀 제한 해제를 해줘야 한다.
import sys sys.setrecursionlimit(10**6) N = int(sys.stdin.readline()) graph = [[] for _ in range(N+1)] visit = [False] * (N+1) for _ in range(N-1): a, b = map(int, input().split()) graph[a].append(b) graph[b].append(a) parent = [-1] * (N+1) def dfs(node, p): visit[node] = True parent[node] = p for x in graph[node]: if not visit[x]: dfs(x, node) dfs(1,0) for i in range(2, N+1): print(parent[i])