728x90
https://www.acmicpc.net/problem/11725
트리란 그래프의 일종인데, 중복된 곳에서 한 점으로 올 수 없는 구조이다.
해당 문제에서 트리구조를 찾기위해선, 먼저 연결관계를 모두 기록한 후에 1번 노드를 첫번째 부모로 둔 후, 자식들을 연결해 나가면 해결할 수 있다.
import sys
sys.setrecursionlimit(100000)
input = sys.stdin.readline
n = int(input())
tree = [ [] for _ in range(n + 1)]
parents =[ 0 for _ in range(n + 1)]
for _ in range(n-1):
a,b = map(int,input().split())
tree[a].append(b)
tree[b].append(a)
def dfs(node):
for i in tree[node]:
if parents[i] == 0:
parents[i] = node
dfs(i)
dfs(1)
print(*parents[2:],sep='\n')
이때 문제해결을 위해 재귀함수 제한을 풀어줘야 백준이 통과된다!
728x90
'Python > 백준' 카테고리의 다른 글
1967_트리의 지름 (0) | 2022.05.03 |
---|---|
1167_트리의지름 (0) | 2022.05.02 |
11700_플로이드2 (0) | 2022.04.30 |
11779_최소비용 구하기 2 (0) | 2022.04.29 |
9019_DSLR (0) | 2022.04.27 |