알고리즘/백준(BOJ)

[백준/알고리즘] #9934: 완전 이진 트리 [파이썬(python)/트리]

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

 

9934번: 완전 이진 트리

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

www.acmicpc.net

#9934_완전이진트리
import sys
input = sys.stdin.readline

K=int(input())
tree = list(map(int,input().split()))
bin_tree = [[] for _ in range(K)]

def binary_search(tree,depth):
    if len(tree)==1:#last layer
        bin_tree[depth].extend(tree)
        return 
    mid = len(tree) // 2
    bin_tree[depth].append(tree[mid])
    binary_search(tree[:mid],depth+1)
    binary_search(tree[mid+1:],depth+1)

binary_search(tree,0)

for i in range(K):
    if i==0:
        print(bin_tree[i][0])
    else:
        print(*bin_tree[i])