본문 바로가기
Develop/알고리즘

[백준/Python] Silver II #11725 트리의 부모 찾기

by favorcat 2023. 6. 3.
반응형
 

11725번: 트리의 부모 찾기

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

www.acmicpc.net

문제

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

입력

첫째 줄에 노드의 개수 N (2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개의 줄에 트리 상에서 연결된 두 정점이 주어진다.

출력

첫째 줄부터 N-1개의 줄에 각 노드의 부모 노드 번호를 2번 노드부터 순서대로 출력한다.

풀이

from collections import deque
import sys
input = sys.stdin.readline

n = int(input())
visited = [False] * (n+1)
m = [[] for _ in range(n+1)]
res = [0] * (n+1)

for i in range(n-1):
  a, b = map(int,input().split())
  m[a].append(b)
  m[b].append(a)

def bfs (m, v, visited):
  q = deque([v])
  visited[v] = True
  while q:
    x = q.popleft()
    for i in m[x]:
      if not visited[i]:
        q.append(i)
        visited[i] = True
        res[i] = x
bfs(m, 1, visited)

for i in range(2, n+1):
  print(res[i])

 

반응형

Comment