cmod.ify

[1991] 트리 순회 본문

BASIC/코딩테스트

[1991] 트리 순회

modifyC 2026. 1. 19. 14:39
728x90
반응형

이진트리라서 2개 열만 만들었다.

 

알파벳을 인덱스화 해서 재귀탐색으로 구현했다.

전위 중위 후위 순위 헷갈렸는데 문제에 친절하게 알려줌

생각해보니 이름에 다 나와있네. 루트가 전 루트가 중 루트가 후

import sys

input = sys.stdin.readline

N = int(input())
tree = [[-1] * 2 for _ in range(26)]

for _ in range(N):
    li = input().strip().split()
    par = ord(li[0]) - ord("A")
    if li[1] != ".":
        tree[par][0] = ord(li[1]) - ord("A")
    if li[2] != ".":
        tree[par][1] = ord(li[2]) - ord("A")


def Pre(n):
    if n == -1:
        return
    print(chr(n + 65), end="")
    Pre(tree[n][0])
    Pre(tree[n][1])


def In(n):
    if n == -1:
        return
    In(tree[n][0])
    print(chr(n + 65), end="")
    In(tree[n][1])


def Post(n):
    if n == -1:
        return
    Post(tree[n][0])
    Post(tree[n][1])
    print(chr(n + 65), end="")


Pre(0)
print()
In(0)
print()
Post(0)
728x90
반응형

'BASIC > 코딩테스트' 카테고리의 다른 글

[1916] 최소비용 구하기  (0) 2026.01.22
[11660] 구간 합 구하기5  (0) 2026.01.21
[1932] 정수 삼각형  (0) 2026.01.16
[1629] 곱셈  (0) 2026.01.16
[1149] RGB 거리  (0) 2026.01.15