파이썬 알고리즘 236번 | [백준 1991번] 트리 순회

Yunny.Log ·2022년 8월 12일
0

Algorithm

목록 보기
240/318
post-thumbnail

236. 트리 순회

1) 어떤 전략(알고리즘)으로 해결?

2) 코딩 설명

<내 풀이>


import sys

n = int(sys.stdin.readline().rstrip())
dict = {}
for i in range(n) :
    node, l, r = (sys.stdin.readline().rstrip().split())
    dict[node] =[l,r]


# 전위 순회(preorder traversal), 
def preorder_traversal(node) : 
    print(node, end="")
    if dict[node][0]!='.' : 
        preorder_traversal(dict[node][0])
    if dict[node][1]!='.' : 
        preorder_traversal(dict[node][1])

# # 중위 순회(inorder traversal), 
def inorder_traversal(node) :
    if dict[node][0]!='.' : 
        inorder_traversal(dict[node][0])
    print(node, end="")
    if dict[node][1]!='.' : 
        inorder_traversal(dict[node][1])

# # 후위 순회(postorder traversal)
def postorder_traversal(node) :
    if dict[node][0]!='.' : 
        postorder_traversal(dict[node][0])
    if dict[node][1]!='.' : 
        postorder_traversal(dict[node][1])
    print(node, end="")

preorder_traversal('A')
print()
inorder_traversal('A')
print()
postorder_traversal('A')

< 내 틀렸던 풀이, 문제점>

9 프로서 틀림 (걍 오타)


import sys

n = int(sys.stdin.readline().rstrip())
dict = {}
for i in range(n) :
    node, l, r = (sys.stdin.readline().rstrip().split())
    dict[node] =[l,r]


# 전위 순회(preorder traversal), 
def preorder_traversal(node) : 
    print(node, end="")
    if dict[node][0]!='.' : 
        preorder_traversal(dict[node][0])
    if dict[node][1]!='.' : 
        preorder_traversal(dict[node][1])

# # 중위 순회(inorder traversal), 
def inorder_traversal(node) :
    if dict[node][0]!='.' : 
        inorder_traversal(dict[node][0])
    print(node, end="")
    if dict[node][1]!='.' : 
        inorder_traversal(dict[node][1])

# # 후위 순회(postorder traversal)
def postorder_traversal(node) :
    if dict[node][0]!='.' : 
        inorder_traversal(dict[node][0])
    if dict[node][1]!='.' : 
        inorder_traversal(dict[node][1]) # 걍 오타 ,,ㅋ
    print(node, end="")

preorder_traversal('A')
print()
inorder_traversal('A')
print()
postorder_traversal('A')

<반성 점>

  • 오타를 조심!

<배운 점>

  • 순회 복습

0개의 댓글