ํฐ์คํ ๋ฆฌ ๋ทฐ
๐ฉ ํธ๋ฆฌ(tree)
thinking
[๋ถ๋ชจ๋ ธ๋, ์ผ์ชฝ์์, ์ค๋ฅธ์ชฝ์์, ๋ ธ๋๊ฐ] ์ 2์ฐจ์ ๋ฆฌ์คํธ ํํ์ ํธ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ input data ๊ฐ์ ๋ฃ์ด์ค๋ค.
์ผ์ชฝ์์, ์ค๋ฅธ์ชฝ์์์ ๋ ธ๋๋ฒํธ๊ฐ 1์ฉ ์ฐจ์ด๋๋ฏ๋ก ์ธ๋ฑ์ค๋ฅผ ํ์ง์ผ๋ก ์ ๊ทผํด ๊ฐ์ ๋ฃ์ด์คฌ๊ณ ,
๋ง์ฝ ์ ์ฒด ๋ ธ๋์ ๊ฐ์๊ฐ ์ง์์ธ ๊ฒฝ์ฐ ์ค๋ฅธ์ชฝ ์์์ด ์์ผ๋ฏ๋ก 0์ผ๋ก ๋ค์ ํ ๋นํด์ฃผ๋ ์กฐ๊ฑด๋ฌธ์ ์ค์ ํ๋ค.
change ๋ผ๋ ํจ์๋ฅผ ํตํด ๋ถ๋ชจ<์์์ด ๋๋๋ก ๋ฐ๊ฟ์ฃผ๋๋ฐ, ์ฌ๊ท์ ์ผ๋ก ์ ๊ทผํ์ง ์์ ๊ฒฝ์ฐ
๋ง์ฝ 5-3-1
์ ๊ฒฝ์ฐ๋ผ๋ฉด ํจ์ 1๋ฒ ์ํ์์ 3-5-1
, ํจ์ 2๋ฒ ์ํ์์ 3-1-5
๊ฐ ๋์ด
์ ์ฒด์ ์ผ๋ก ๋ดค์ ๋ ๋ถ๋ชจ<์์์ด ํญ์ ์ฑ๋ฆฝํ์ง ์๊ฒ ๋๋ค.
(์ฒ์ ์ฝ๋๋ฅผ ์์ฑํ์ ๋ ์ฌ๊ท๋ก ๊ตฌ์ฑํ์ง ์์ 9๊ฐ์ testcase ์ค 3๊ฐ๋ง ๋ง์๋ค.)
์ฌ๊ท๋ก ๋ถ๋ชจ<์์์ด ๋ ๋๊น์ง ๊ณ์ํด์ ๋๋ ค์ผํ๋๋ฐ, ์์๋ ธ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ถ๋ชจ๋ ธ๋๋ฅผ ๋น๊ตํ๋๋ก ํ๋ค.
์ฝ๋
T = int(input())
def change(node):
parent = tree[node][0]
if parent:
if tree[parent][3] > tree[node][3]:
tree[parent][3], tree[node][3] = tree[node][3], tree[parent][3]
else:
return
change(parent)
def sum_root(N):
global ans
if tree[N][0] == 0:
return
ans += tree[tree[N][0]][3]
sum_root(tree[N][0])
for tc in range(1, T+1):
N = int(input())
tmp = list(map(int, input().split()))
tree = [[0]*4 for _ in range(N+1)] # [๋ถ๋ชจ๋
ธ๋,์ผ์ชฝ์์,์ค๋ฅธ์ชฝ์์,๋
ธ๋๊ฐ]
for i in range(1, N+1):
tree[i][3] = tmp[i-1]
tree[i][0] = i // 2
if 2 * i <= N:
tree[i][1] = 2 * i
tree[i][2] = 2 * i + 1
if 2*i+1 > N:
tree[i][2] = 0
for i in range(1, N+1):
change(i)
ans = 0
sum_root(N)
print("#{} {}".format(tc, ans))
'algorithm > swea' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[swea] 5188. ์ต์ํฉ / python ํ์ด์ฌ (0) | 2021.04.15 |
---|---|
[swea] 5178. ๋ ธ๋์ ํฉ / python ํ์ด์ฌ (0) | 2021.04.09 |
[swea] 5176. ์ด์งํ์ / python ํ์ด์ฌ (0) | 2021.04.09 |
[swea] 5174. subtree / python ํ์ด์ฌ (0) | 2021.04.09 |
[swea] 1859. ๋ฐฑ๋ง ์ฅ์ ํ๋ก์ ํธ / python ํ์ด์ฌ (0) | 2021.04.09 |
- 21609 ์์ด ์คํ๊ต
- ํ์ด์ฌ
- 20057 ๋ง๋ฒ์ฌ ์์ด์ ํ ๋ค์ด๋
- merge์๋ฌ
- react
- dfs
- dp
- ์๊ณ ๋ฆฌ์ฆ
- ์์ด๋๋ง์๊ธฐ
- 2579 ๊ณ๋จ์ค๋ฅด๊ธฐ
- 2018 ์นด์นด์ค ๊ณต์ฑ
- 17406 ๋ฐฐ์ด๋๋ฆฌ๊ธฐ4
- git ๋ฏธ๋ฌ๋ง
- BFS
- Python
- merge ์๋ฌ
- ๊ธฐ์ง๊ตญ์ค์น
- swea
- ๋ฐฑ์ค
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ธ๋ฃจํธํฌ์ค
- ๋ณด์์ผํ
- 20056 ๋ง๋ฒ์ฌ ์์ด์ ํ์ด์ด๋ณผ
- ์ผ์ฑ์ฝํ
- ์ผ์ฑ๊ธฐ์ถ
- Total
- Today
- Yesterday