본문 바로가기
TIL - 프로그래밍/Python 알고리즘

[백준] 9934. 완전 이진 트리

by chaemj97 2022. 8. 1.
728x90

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

 

9934번: 완전 이진 트리

상근이는 슬로베니아의 도시 Donji Andrijevci를 여행하고 있다. 이 도시의 도로는 깊이가 K인 완전 이진 트리를 이루고 있다. 깊이가 K인 완전 이진 트리는 총 2K-1개의 노드로 이루어져 있다. (아래

www.acmicpc.net


from re import M
from sys import stdin
input = stdin.readline

# 트리 깊이
K = int(input())
# 방문한 빌딩의 번호
building = list(map(int,input().split()))
tree = [[] for _ in range(K)]

def Maketree(arr,level):
    # 중위 순회니 arr의 중심값의 깊이가 level 
    mid = len(arr)//2
    tree[level].append(arr[mid])
    # 1개 있으면 끝
    if len(arr) == 1:
        return
    # 왼쪽 자식들
    Maketree(arr[:mid],level+1)
    # 오른쪽 자식들
    Maketree(arr[mid+1:],level+1)

Maketree(building,0)

# 각 레벨에 있는 빌딩 번호 출력
for i in range(K):
    print(*tree[i])
728x90
반응형

댓글