ํฐ์คํ ๋ฆฌ ๋ทฐ
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]))
'algorithm > swea' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[swea] 5189. ์ ์์นดํธ / python ํ์ด์ฌ (0) | 2021.04.15 |
---|---|
[swea] 5188. ์ต์ํฉ / python ํ์ด์ฌ (0) | 2021.04.15 |
[swea] 5177. ์ด์งํ / python ํ์ด์ฌ (0) | 2021.04.09 |
[swea] 5176. ์ด์งํ์ / python ํ์ด์ฌ (0) | 2021.04.09 |
[swea] 5174. subtree / python ํ์ด์ฌ (0) | 2021.04.09 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
TAG
- ์์ด๋๋ง์๊ธฐ
- 20056 ๋ง๋ฒ์ฌ ์์ด์ ํ์ด์ด๋ณผ
- ๋ฐฑ์ค
- ๋ธ๋ฃจํธํฌ์ค
- dp
- ์ผ์ฑ์ฝํ
- 21609 ์์ด ์คํ๊ต
- 2018 ์นด์นด์ค ๊ณต์ฑ
- ํ๋ก๊ทธ๋๋จธ์ค
- ์ผ์ฑ๊ธฐ์ถ
- ๋ณด์์ผํ
- react
- 17406 ๋ฐฐ์ด๋๋ฆฌ๊ธฐ4
- 20057 ๋ง๋ฒ์ฌ ์์ด์ ํ ๋ค์ด๋
- ์๊ณ ๋ฆฌ์ฆ
- dfs
- swea
- BFS
- Python
- merge ์๋ฌ
- merge์๋ฌ
- ๊ธฐ์ง๊ตญ์ค์น
- 2579 ๊ณ๋จ์ค๋ฅด๊ธฐ
- git ๋ฏธ๋ฌ๋ง
- ํ์ด์ฌ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
- Total
- Today
- Yesterday
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ