TIL - 프로그래밍/Python 알고리즘
[백준] 1991. 트리 순회 - Python
chaemj97
2022. 8. 1. 22:23
728x90
https://www.acmicpc.net/problem/1991
1991번: 트리 순회
첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파
www.acmicpc.net
from sys import stdin
from collections import deque
input = stdin.readline
# 전위 순회, 중위 순회, 후위 순회 결과 출력
# 노드의 개수
N = int(input())
# 연결 노드
node = [[] for _ in range(N+1)]
# 부모 노드 번호
parent = [0 for _ in range(N+1)]
for _ in range(N-1):
a, b = map(int,input().split())
node[a].append(b)
node[b].append(a)
# 부모 찾기
que = deque()
que.append(1)
while que:
n = que.popleft()
# n번 노드랑 연결된 노드들
for i in node[n]:
# 부모가 정해지지 않았다면 n이 부모
if parent[i] == 0:
parent[i] = n
que.append(i)
# 부모 노드 번호 출력
for j in parent[2:]:
print(j)
728x90
반응형