티스토리 뷰

https://www.acmicpc.net/problem/11725

 

11725번: 트리의 부모 찾기

루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오.

www.acmicpc.net

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from collections import deque
 
= int(input())
arr = [list() for _ in range(n + 1)]
answer = [-1* (n + 1)
for _ in range(n - 1):
    a, b = map(int, input().split())
    arr[a].append(b)
    arr[b].append(a)
 
= deque()
q.append(1)
 
while q:
    now = q.popleft()
    for node in arr[now]:
        if answer[now] != node:
            answer[node] = now
            q.append(node)
 
for ans in answer[2:]:
    print(ans)
cs

BFS로 풀면 된다.

1이 루트 노드라고 했으니, 1부터 시작하여 각 노드에 연결된 노드를 탐색하며 부모 노드를 초기화하면 된다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함