import sys
sys.setrecursionlimit(10**6)
def postorder(start, end):
if start > end: return
root = pre_order[start]
idx = start + 1
for i in range(idx, end + 1):
if pre_order[i] > root:
idx = i
break
postorder(start + 1, idx -1)
postorder(idx, end)
print(root)
pre_order = []
while True:
try:
pre_order.append(int(sys.stdin.readline()))
except:
break
postorder(0, len(pre_order) - 1)
입력에 정해진 것이 없는 경우의 방법과 RecursionError를 새로 알게 되었다. 제한을 늘려줘야 했다.