https://www.acmicpc.net/problem/1991
시간 2초, 메모리 128MB
input :
output :
인접리스트에 인덱스 0, 1 번에다가
left_child, right_child 로 저장하자 ㅋㅋㅋㅋㅋㅋㅋ 메모리는 노드가 많아지면 많이 잡아먹을 듯.
괜히 for문 돌리려고 했다가 시간만 많이 쓰고 if문으로 하자..
import sys
n = int(sys.stdin.readline())
graph = [[-1, -1] for i in range(n)]
def print_node(start):
print(chr(start + 65), end="")
if graph[start][0] != -1:
print_node(graph[start][0])
if graph[start][1] != -1:
print_node(graph[start][1])
def print_middle_dfs(start):
if graph[start][0] != -1:
print_middle_dfs(graph[start][0])
print(chr(start + 65), end="")
if graph[start][1] != -1:
print_middle_dfs(graph[start][1])
def print_after_dfs(start):
if graph[start][0] != -1:
print_after_dfs(graph[start][0])
if graph[start][1] != -1:
print_after_dfs(graph[start][1])
print(chr(start + 65), end="")
for i in range(n):
a, b, c = sys.stdin.readline().split()
idx = ord(a) - 65
if b != '.':
graph[idx][0] = ord(b) - 65
if c != '.':
graph[idx][1] = ord(c) - 65
print_node(0)
print()
print_middle_dfs(0)
print()
print_after_dfs(0)