ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
ํธ๋ฆฌ๋ฅผ ์ํํ๋ ๊ฒ์ ๊น์ด ์ฐ์ ์ผ๋ก ํ์ํ๋ฏ๋ก ์ฌ๊ท ํธ์ถ์ ์ฌ์ฉํ๋ฉด ์ฝ๊ฒ ๊ตฌํํ ์ ์๋ค. ์ฌ๊ท ํธ์ถ์ ์ธ์ ํ ์ง ๊ตฌํํ๋ฉด ์ ์, ์ค์, ํ์ ์ํ๋ฅผ ํ ์ ์๋ค. ์ฆ, ์ฌ๊ท ํธ์ถ์ ํ ๋ ๋ถ๋ชจ๋ฅผ ์ธ์ ์ถ๋ ฅํ๋๋์ ๋ฐ๋ผ ์ํ ๋ฐฉ๋ฒ์ด ๋ฌ๋ผ์ง๋ค. ์ํํ๋ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ๋ค.
- ์ ์ ์ํ : ๋ถ๋ชจ → ์ผ์ชฝ ์์ → ์ค๋ฅธ์ชฝ ์์
- ์ค์ ์ํ : ์ผ์ชฝ ์์ → ๋ถ๋ชจ → ์ค๋ฅธ์ชฝ ์์
- ํ์ ์ํ : ์ผ์ชฝ ์์ → ์ค๋ฅธ์ชฝ ์์ → ๋ถ๋ชจ
์ฝ๋
from sys import stdin
def traversal(cur_node, order):
left, right = graph[cur_node].values()
if order == 'pre':
print(cur_node, end='')
if left != '.':
traversal(left, order)
if order == 'in':
print(cur_node, end='')
if right != '.':
traversal(right, order)
if order == 'post':
print(cur_node, end='')
if __name__ == '__main__':
n = int(stdin.readline())
graph = dict()
for _ in range(n):
node, left, right = stdin.readline().split()
graph[node] = {'l': left, 'r': right}
for order in ('pre', 'in', 'post'):
traversal('A', order)
print()
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 1261 ์๊ณ ์คํ (0) | 2020.07.28 |
---|---|
๋ฐฑ์ค: 11725 ํธ๋ฆฌ์ ๋ถ๋ชจ ์ฐพ๊ธฐ (0) | 2020.07.27 |
๋ฐฑ์ค: 14226 ์ด๋ชจํฐ์ฝ (0) | 2020.07.25 |
๋ฐฑ์ค: 13913 ์จ๋ฐ๊ผญ์ง 4 (0) | 2020.07.24 |
๋ฐฑ์ค: 13549 ์จ๋ฐ๊ผญ์ง 3 (0) | 2020.07.24 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ