[Python] 백준 1991_ 트리 순회

채수빈·2022년 1월 4일
1

백준 알고리즘

목록 보기
17/21

https://www.acmicpc.net/problem/1991

먼저, 트리를 딕셔너리를 이용하여 만들어주고, 트리 순회는 재귀 함수로 진행하였다.
(처음에는 재귀함수로 구현할 방법을 생각하지 못해 일일히 구현하려고 했다;)

코드

import sys
input = sys.stdin.readline

n = int(input())

#트리만들기
tree = {}
for i in range(n):
    root, l,r = map(str,input().split())
    tree[root]=[l,r]

def preorder(node): #루트->왼->오
    if node == ".":
        return
    print(node,end="")
    preorder(tree[node][0]) #왼
    preorder(tree[node][1]) #오

def inorder(node): #왼->루트->오
    if node == ".":
        return
    inorder(tree[node][0]) #왼
    print(node,end="")
    inorder(tree[node][1]) #오

def postorder(node): #왼->오->루트
    if node == ".":
        return
    postorder(tree[node][0]) #왼
    postorder(tree[node][1]) #오
    print(node,end="")
    
preorder('A')
print()
inorder('A')
print()
postorder('A')
profile
웹 프로그래밍과 알고리즘 공부👩🏻‍💻

0개의 댓글