728x90

딕셔너리로 트리 생성하면 탐색이 편리하다.

class Node:
    def __init__(self, val, left, right):
        self.val = val
        self.left = left
        self.right = right

def preorder(node):
    print(tree[node].val, end="")
    if tree[node].left != '.':
        preorder(tree[node].left)
    if tree[node].right != '.':
        preorder(tree[node].right)

def inorder(node):
    if tree[node].left != '.':
        inorder(tree[node].left)
    print(tree[node].val, end="")
    if tree[node].right != '.':
        inorder(tree[node].right)

def postorder(node):
    if tree[node].left != '.':
        postorder(tree[node].left)
    if tree[node].right != '.':
        postorder(tree[node].right)
    print(tree[node].val, end="")

import sys
sys.setrecursionlimit(10**6)

N = int(input())
tree = {}

for i in range(N):
    val, l, r = input().split()
    tree[val] = Node(val, l, r)

preorder('A')
print()
inorder('A')
print()
postorder('A')

'PS > Python' 카테고리의 다른 글

[BOJ_Python] 2644. 촌수계산  (0) 2021.04.17
[BOJ_Python] 7569. 토마토  (0) 2021.04.17
[BOJ_Python] 14499. 주사위 굴리기  (0) 2021.04.05
[BOJ_Python] 14500. 테트로미노  (0) 2021.04.05
[BOJ_Python] 3190. 뱀  (0) 2021.04.05
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기