For Programmer
백준 1991번 파이썬 문제풀이(트리 순회) 본문
728x90
기존의 숫자처리가아닌 알파벳으로 트리를 처리해야하는 문제이다. 딕셔너리와 아스키 코드를 이용하여 문제를 해결하였다.
# 전위 순회
def pre_order(v):
if v:
print(v, end="")
pre_order(tree[v][0])
pre_order(tree[v][1])
# 중위 순회
def in_order(v):
if v:
in_order(tree[v][0])
print(v, end="")
in_order(tree[v][1])
# 후위 순회
def post_order(v):
if v:
post_order(tree[v][0])
post_order(tree[v][1])
print(v, end="")
N = int(input())
tree = {}
for i in range(65, 65 + N):
tree[chr(i)] = ['', '', ''] # 왼쪽자식,오른쪽자식,부모
for _ in range(N):
node, left, right = map(str, input().split())
if left.isalpha():
tree[node][0] = left
tree[left][2] = node
if right.isalpha():
tree[node][1] = right
tree[right][2] = node
pre_order('A')
print()
in_order('A')
print()
post_order('A')
print()
728x90
'코팅테스트 > 백준 문제 모음' 카테고리의 다른 글
SWEA 1238번 파이썬 문제풀이(Contact) (0) | 2022.03.17 |
---|---|
백준 15662번 파이썬 문제풀이(톱니바퀴(2)) (0) | 2022.03.17 |
백준 14499번 파이썬 문제풀이(주사위 굴리기) (0) | 2022.03.15 |
SWEA1767 프로세서 연결하기 - 파이썬문제풀이 (0) | 2022.03.14 |
백준 15683번 파이썬 문제풀이(감시) (0) | 2022.03.06 |
Comments