리프노드 갯수랑 value 다 줘서 구현은 어렵지 않았다.
첨엔 문제만 읽고 Segment Tree 그리라는줄..
def prefix_tree(node):
if N-M < node <= N:
return tree[node]
elif node > N:
return 0
else:
left = prefix_tree(node*2)
right = prefix_tree(node*2 + 1)
tree[node] = left + right
return tree[node]
for test in range(1, int(input())+1):
N, M, L = map(int, input().split())
tree = [0] *(N+1)
for _ in range(M):
node_num, value = map(int, input().split())
tree[node_num] = value
prefix_tree(1)
print(f'#{test} {tree[L]}')
'practivceAlgorithm > swexpertacademy' 카테고리의 다른 글
[SWEA][Python] 1225 암호생성기 (0) | 2021.08.25 |
---|---|
[SWEA][Python] 1223 계산기2 (0) | 2021.08.24 |
[SWEA][Python] 5177 이진힙 (0) | 2021.08.24 |
[SWEA][Python] 5176 이진 탐색 (0) | 2021.08.24 |
[SWEA][Python] 5174 subtree (0) | 2021.08.24 |