practivceAlgorithm/swexpertacademy

[SWEA][Python] 5178 노드의 합

findTheValue 2021. 8. 24. 00:42

리프노드 갯수랑 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