문제 링크
https://www.acmicpc.net/problem/11725
처음에 parent 배열을 모두 -1로 두고 시작했다.
그리고 for i in Tree[start]를 하면서 자식들을 만날 때마다, parent배열에 부모를 할당해주었다.
트리의 루트는 1이므로 dfs(1)을 해주었다.
정답 코드
import sys
sys.setrecursionlimit(10 ** 6)
N = int(sys.stdin.readline())
Tree = []
Tree = [[]* (N+1) for i in range(N+1)]
for i in range(N-1):
a, b = map(int,sys.stdin.readline().split())
Tree[a].append(b)
Tree[b].append(a)
def dfs(start):
global parent
for i in Tree[start]:
if parent[i] == -1:
parent[i] = start
dfs(i)
parent = [-1] * (N+1)
dfs(1)
for i in range(2,N+1):
print(parent[i])
728x90
'파이썬 알고리즘 문제 풀이' 카테고리의 다른 글
Baekjoon Online Judge 1967번 파이썬 (1) | 2022.09.07 |
---|---|
Baekjoon Online Judge 1167번 파이썬 (0) | 2022.09.04 |
Baekjoon Online Judge 1991번 파이썬 (0) | 2022.08.31 |
Baekjoon Online Judge 2146번 파이썬 😩 (0) | 2022.08.24 |
Baekjoon Online Judge 2178번 파이썬 (1) | 2022.08.22 |