1874번: 스택 수열 (acmicpc.net)
##
인덱스와 숫자를 증가하면서, 원하는값이 input한 list[index]에 있을때까지 더하고, 스택으로 할수있는 연산 저장하고 출력하면 된다.
코드에 나온 연산 외의 경우는 불가능하므로 NO를 출력하도록 한다
##
from collections import deque
import sys
input = sys.stdin.readlines
l = list(map(lambda x:x.rstrip().replace('\x1a',''),input()[1:]))
l = list(map(int,l))
q = deque([])
num = 1
i = 0
result = []
while (True):
#print(l,q,i)
if i == len(l):
break
elif len(q) == 0:
q.append(num)
num += 1
result.append('+')
elif l[i] > q[-1]:
q.append(num)
num += 1
result.append('+')
elif l[i] == q[-1]:
q.pop()
i += 1
result.append('-')
else:
result = ['NO']
break
print(*result,end='',sep='\n')
0 댓글