첫번째 코드
먼저 트리를 구성하는 방법에 대해서 적응이 필요할 것 같다.
트리를 이전에 class나 __init__이렇게 구성하는데, 해당 과정을 잘 모르겠다.
이번 문제는 리스트로 표현하여 어떻게 나오게 할지 재귀로 순서만 생각하면 된다면,
트리와 관련된 구성 방법에 대한 공부가 필요하다...
코드는 책을 참고했다!!
순서를 헷갈리지 않으면 혼자 풀 수 있을 것 같다.
import sys
input = sys.stdin.readline
n = int(input())
tree = {}
for _ in range(n):
root, left, right = input().split()
tree[root] = [left, right]
def preOrder(now):
if now == '.':
return
print(now, end = '')
preOrder(tree[now][0])
preOrder(tree[now][1])
def inOrder(now):
if now == '.':
return
inOrder(tree[now][0])
print(now, end = '')
inOrder(tree[now][1])
def postOrder(now):
if now == '.':
return
postOrder(tree[now][0])
postOrder(tree[now][1])
print(now, end = '')
preOrder('A')
print()
inOrder('A')
print()
postOrder('A')
통과
트리 관련해서 구성 방법 많이 공부하기!
재귀 많이 생각해보기!!
링크
'코딩 테스트 > do it! 알고리즘 코딩테스트' 카테고리의 다른 글
072 최솟값 (0) | 2024.08.01 |
---|---|
071 구간 합 구하기 (0) | 2024.08.01 |
069 문자열 집합 (미해결) (0) | 2024.07.30 |
068 트리 (0) | 2024.07.25 |
067 트리의 부모 찾기 (0) | 2024.07.25 |