DHistory

[Baekjoon] DFS/BFS - 11725 트리의 부모 찾기 본문

Computer Science/Algorithm

[Baekjoon] DFS/BFS - 11725 트리의 부모 찾기

ddu0422 2023. 9. 6. 20:53

문제

 

11725번: 트리의 부모 찾기

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

www.acmicpc.net

 

풀이

"""
1: [4, 6]
2: [4]
3: [5, 6]
4: [1, 2, 7]
5: [3]
6: [1, 3]

1 - 6 - 3 - 5
  ㄴ 4 - 2
      ㄴ 7

4
6
1
3
1
4
BFS
현재 노드가 부모 노드가 된다.
"""
import sys
from collections import deque

n = int(sys.stdin.readline().rstrip())
nodes = [[] for _ in range(n + 1)]
for _ in range(n - 1):
    a, b = map(int, sys.stdin.readline().rstrip().split())
    nodes[a].append(b)
    nodes[b].append(a)

visited = [False] * (n + 1)


def solution(nodes, visited):
    queue = deque([1])
    visited[1] = True
    parents = [1] * len(visited)

    while queue:
        now = queue.popleft()

        for v in nodes[now]:
            if not visited[v]:
                visited[v] = True
                parents[v] = now
                queue.append(v)

    return parents[2:]


print(*solution(nodes, visited), sep="\n")

 

채점 결과