Algorithm/SW Expert Academy

[Python] 5176. 이진탐색

느낌표 공장장 2021. 9. 24. 17:28
def inorder(node):
    global cnt

    if node <= n:
        inorder(node*2)   # 왼쪽 노드
        tree[node] = cnt    # 왼쪽 다 다녀 왔으면 값 넣어
        cnt += 1
        inorder(node*2+1) # 오른쪽 노드


tc = int(input())

for idx in range(1, tc+1):
    n = int(input()) # 이진 탐색 트리에 저장할 노드 개수

    tree = [0 for _ in range(n+1)]

    cnt = 1
    inorder(1)    # 중위순회 하면 오름차순으로 정렬된 값을 얻을 수 있다.

    print('#{} {} {}'.format(idx, tree[1], tree[n//2]))

'Algorithm > SW Expert Academy' 카테고리의 다른 글

[Python] 5178. 노드의 합  (0) 2021.09.24
[Python] 5177. 이진힙  (0) 2021.09.24
[Python] 5174. subtree  (0) 2021.09.24
[Python] 1232. 사칙연산  (0) 2021.09.24
[Python] 1231. 중위 순회  (0) 2021.09.23