ํฐ์คํ ๋ฆฌ ๋ทฐ
๐จ๐ป ์ฝ๋ฉํ
์คํธ/๋ฐฑ์ค
๋ฐฑ์ค: 2250 ํธ๋ฆฌ์ ๋์ด์ ๋๋น
dirmathfl 2020. 7. 29. 22:48728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
ํธ๋ฆฌ๊ฐ ์ฃผ์ด์ง ๋, ๊ฐ์ฅ ๋์ด๊ฐ ๋์ ๊ฒฝ์ฐ์ ๋ ๋ฒจ๊ณผ ๋์ด๋ฅผ ์ฐพ๋ ๋ฌธ์ ์ด๋ค. ์ ๋ ฅ ์์ ์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด 1์ ๊ธฐ์ค์ผ๋ก left child๋ถํฐ ์ธ๋ฑ์ค๊ฐ ํ ๋น๋๊ณ , 1์ ์ธ๋ฑ์ค๋ฅผ ํ ๋นํ ํ์ right child์ ์ธ๋ฑ์ค๋ฅผ ํ ๋นํ๋ ๊ฒ์ ์ ์ ์๋ค. ์ด๋ ์ค์ ์ํ๋ฅผ ํตํด ํธ๋ฆฌ์ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ๋ถ์ฌํ ๊ฒ์ด๋ผ๋ ๊ฑธ ์ ์ ์๋ค. ์ค์ ์ํ์ ๊ฒฝ์ฐ ํธ๋ฆฌ ์ํ ๋ฌธ์ ์์ ๋ค๋ฃจ์๋ค. ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ์งํํ๋ฉด ๋ต์ ๊ตฌํ ์ ์๋ค.
- ํธ๋ฆฌ๋ฅผ ์ค์ ์ํํ๋ฉฐ ์ธ๋ฑ์ค ๋ฒํธ ๋ถ์ฌํ๊ณ ๋ ๋ฒจ(depth) ๋ณ๋ก ๊ตฌ๋ถ
- ๋ ๋ฒจ 1๋ถํฐ N๊น์ง ์ธ๋ฑ์ค์ฐจ๊ฐ ๊ฐ์ฅ ๋ง์ด ๋๋ ๋ ๋ฒจ๊ณผ, ์ธ๋ฑ์ค ์ฐจ๋ฅผ ๋ฐํ
์ฝ๋
from sys import stdin
def in_order(node, level):
global idx
left, right = graph[node].values()
if left != -1:
in_order(left, level + 1)
node_per_level[level].append(idx)
idx += 1
if right != -1:
in_order(right, level + 1)
if __name__ == '__main__':
n = int(stdin.readline())
graph = dict()
parent_check = [False] * n
node_per_level = [[] for _ in range(n)]
idx = 1
# ๊ทธ๋ํ ์ ๋ณด ์ด๊ธฐํ, Parent ์ ๋ณด ์ฒดํฌ
for _ in range(n):
node, left, right = map(int, stdin.readline().split())
if left != -1:
parent_check[left - 1] = True
if right != -1:
parent_check[right - 1] = True
graph[node] = {'l': left, 'r': right}
# root ๋
ธ๋๋ฅผ ์ฐพ์.
root = parent_check.index(False) + 1
# ์ค์ ์ํ๋ฅผ ํตํด, ๊ฐ ๋ ๋ฒจ๋ณ๋ก ์ธ๋ฑ์ค๋ฅผ ๋ถ๋ฅํจ
in_order(root, 0)
max_level, max_level_width = 0, 0
# ๋ ๋ฒจ ๋ณ๋ก ์ธ๋ฑ์ค์ ์ฐจ๋ฅผ ๊ณ์ฐํ๊ณ , ๊ฐ์ฅ ํฐ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์
for level, nodes in enumerate(node_per_level):
if nodes:
width = max(nodes) - min(nodes) + 1
if max_level_width < width:
max_level_width = width
max_level = level + 1
print(max_level, max_level_width)
N์ด 1์ธ ๊ฒฝ์ฐ๋ฅผ ๋ฐ์ํ์ง ๋ชปํด, 92% ์ฏค์์ ํ๋ ธ๋ค๊ณ ํ์ฌ N์ด 1์ธ ๊ฒฝ์ฐ๋ ๋ฐ์ํ์ ๋ง์์ต๋๋ค!! ๋ฅผ ๋ณผ ์ ์์๋ค.๐
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 9663 N-Queen (0) | 2020.08.01 |
---|---|
๋ฐฑ์ค: 14225 ๋ถ๋ถ์์ด์ ํฉ (0) | 2020.07.31 |
๋ฐฑ์ค: 1261 ์๊ณ ์คํ (0) | 2020.07.28 |
๋ฐฑ์ค: 11725 ํธ๋ฆฌ์ ๋ถ๋ชจ ์ฐพ๊ธฐ (0) | 2020.07.27 |
๋ฐฑ์ค: 1991 ํธ๋ฆฌ ์ํ (0) | 2020.07.27 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ