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 |