tc = int(input()) for idx in range(1, tc+1): n = int(input()) # 목표 노드 node = [0] + list(map(int, input().split())) # 노드들 받아오기 answer = 0 # 위치 바꾸기 for i in range(1, n+1): while node[i//2] > node[i]: # 부모가 나보다 클때 바꿔주기 node[i//2], node[i] = node[i], node[i//2] i //= 2 # 다음 조상도 검토 # 조상 노드 다 더하기 p = n//2 # n의 부모부터 시작이니까 while p > 0: answer += node[p] p //= 2 print(node) print('#{} {}'.format(idx, answer))
'Algorithm > SW Expert Academy' 카테고리의 다른 글
[Python] 1240. 단순 2진 암호코드 (0) | 2021.09.29 |
---|---|
[Python] 5178. 노드의 합 (0) | 2021.09.24 |
[Python] 5176. 이진탐색 (0) | 2021.09.24 |
[Python] 5174. subtree (0) | 2021.09.24 |
[Python] 1232. 사칙연산 (0) | 2021.09.24 |