[๋ฐฑ์ค€-1991] ํŠธ๋ฆฌ ์ˆœํšŒ / Python

๐Ÿ“š Problem Solving/Baekjoon

 

1991๋ฒˆ: ํŠธ๋ฆฌ ์ˆœํšŒ

์ฒซ์งธ ์ค„์—๋Š” ์ด์ง„ ํŠธ๋ฆฌ์˜ ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜ N(1≤N≤26)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ๊ฐ ๋…ธ๋“œ์™€ ๊ทธ์˜ ์™ผ์ชฝ ์ž์‹ ๋…ธ๋“œ, ์˜ค๋ฅธ์ชฝ ์ž์‹ ๋…ธ๋“œ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋…ธ๋“œ์˜ ์ด๋ฆ„์€ A๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์˜๋ฌธ์ž

www.acmicpc.net

import sys

input = sys.stdin.readline
n = int(input())
tree = {}
for _ in range(n):
    root, left, right = map(str, input().split())
    tree[root] = [left, right]


def preorder(root):
    if root != ".":
        print(root, end="")
        preorder(tree[root][0])
        preorder(tree[root][1])


def inorder(root):
    if root != ".":
        inorder(tree[root][0])
        print(root, end="")
        inorder(tree[root][1])


def postorder(root):
    if root != ".":
        postorder(tree[root][0])
        postorder(tree[root][1])
        print(root, end="")


preorder("A")
print()
inorder("A")
print()
postorder("A")

 

ํ•ด์„ค

์žฌ๊ท€ ํ•จ์ˆ˜๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ.

์ „์œ„, ์ค‘์œ„, ํ›„์œ„ ์ˆœํšŒ ๋ณ„๋กœ ์ถœ๋ ฅ ์œ„์น˜๋ฅผ ๋‹ค๋ฅด๊ฒŒ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.