algorithm
알고리즘 기초 1/2 200-자료구조: 스택 수열
park혀니
2025. 3. 26. 16:42
스택 수열(python 1874)
상당히 헤메었던 문제.
스택과 결과를 저장할 리스트를 선언해주고
입력한 수를 만날 때까지 오름차순으로 PUSH 해줌.
만나면 while문을 탈출하며 스택을 쌓아줌.
그 다음 STACK의 TOP이 입력한 수와 같으면 정답 수열에 넣어주고,
아니라면 주어진 스택을 만들 수가 없으므로 NO를 출력해줌.
(오름차순으로 스택이 입력되어있으므로 TOP이 입력한 값보다 작으면 그 값은 아래에 깔려있다는 뜻)
n = int(input())
stack = []
result = []
flag = 0
cur = 1
for i in range(n):
l = int(input())
while cur <= l:
stack.append(cur)
result.append("+")
cur = cur + 1
if stack[-1] == l:
stack.pop()
result.append("-")
else:
print("NO")
flag = 1
break
if flag == 0:
for i in result:
print(i)