ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90

๐Ÿšฉ ํŠธ๋ฆฌ(tree)

 

ํ’€์ด 1

์™ผ์ชฝ ์ž์‹, ์˜ค๋ฅธ์ชฝ ์ž์‹์„ ์„ธํŠธ๋กœ ๊ฐ™์ด ๋”ํ•ด์ฃผ๋Š” ๋ฐฉ์‹

T = int(input())

for tc in range(1, T+1):
    N, M, L = map(int, input().split())  # N:๋…ธ๋“œ๊ฐœ์ˆ˜, M:๋ฆฌ๋“œ๋…ธํ”„๊ฐœ์ˆ˜, L:์ถœ๋ ฅํ•  ๋…ธ๋“œ๋ฒˆํ˜ธ
    tree = [0 for _ in range(N + 1)]
    for i in range(M):
        n, v = map(int, input().split())
        tree[n] = v

    # ๋ฐฉ๋ฒ•1
    if N % 2 == 0:  # ๋…ธ๋“œ๊ฐœ์ˆ˜๊ฐ€ ์ง์ˆ˜์ธ ๊ฒฝ์šฐ๋ฅผ ์œ„ํ•ด ์„ค์ •
        tree.append(0)

    for i in range((N//2)*2, 1, -2):
        tree[i // 2] = tree[i] + tree[i + 1]


    print("#{} {}".format(tc, tree[L]))

 

ํ’€์ด 2

์ž์‹๋…ธ๋“œ ํ•˜๋‚˜์”ฉ ๋”ํ•ด์ฃผ๋Š” ๋ฐฉ์‹

T = int(input())

for tc in range(1, T+1):
    N, M, L = map(int, input().split())  # N:๋…ธ๋“œ๊ฐœ์ˆ˜, M:๋ฆฌ๋“œ๋…ธํ”„๊ฐœ์ˆ˜, L:์ถœ๋ ฅํ•  ๋…ธ๋“œ๋ฒˆํ˜ธ
    tree = [0 for _ in range(N + 1)]
    for i in range(M):
        n, v = map(int, input().split())
        tree[n] = v

    # ๋ฐฉ๋ฒ•2
    for i in range(N, 0, -1):
        if i // 2 > 0:
            tree[i // 2] += tree[i]

    print("#{} {}".format(tc, tree[L]))
๋Œ“๊ธ€