Algorithm/BOJ

[BOJ]11725 - 트리의 부모 찾기 (Python)

꾸지새미언니 2022. 2. 21. 16:19

문제 

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

코드 

from collections import deque
import sys
input = lambda : sys.stdin.readline().strip()

def bfs():
    queue = deque()
    queue.append(1)
    while queue:
        node = queue.popleft()
        for i in graph[node]:
            if parent[i] == 0:
                parent[i] = node
                queue.append(i)


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)

bfs()
for item in parent[2:]:
    print(item)

 

풀이 

트리를 탐색하는 문제이기 때문에 DFS 또는 BFS를 사용하면 쉽게 풀 수 있다 

1부터 그래프를 돌면서 1의 자식인 node를 그 다음으로 돌고 이후 자식들을 탐색한다