본문 바로가기
코딩 테스트/do it! 알고리즘 코딩테스트

070 트리 순회

by ornni 2024. 7. 30.
728x90
반응형

첫번째 코드

 

먼저 트리를 구성하는 방법에 대해서 적응이 필요할 것 같다.

트리를 이전에 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')

 

통과

트리 관련해서 구성 방법 많이 공부하기!

재귀 많이 생각해보기!!


링크

https://github.com/ornni/programmers/tree/main/%EB%B0%B1%EC%A4%80/Silver/1991.%E2%80%85%ED%8A%B8%EB%A6%AC%E2%80%85%EC%88%9C%ED%9A%8C

 

programmers/백준/Silver/1991. 트리 순회 at main · ornni/programmers

repository for recording Programmers Algorithm problem solving - ornni/programmers

github.com

 

반응형

'코딩 테스트 > 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