[백준 1874] 스택 수열

김태민·2026년 4월 12일


처음에 많이 당황했던 문제이다. 상황을 세세하게 나눠 구현하려고 했다가 산으로 가고 있다는걸 깨닫고, 스택의 원리를 다시 생각해보았다.

최종 코드

n = int(input())
arr = []
for _ in range(n):
  arr.append(int(input()))
  
stack = []
current = 1
result = []
flag = True
for i in range(len(arr)):
  while(current <= arr[i]):
    stack.append(current)
    current += 1
    result.append('+')
  if(arr[i] == stack[-1]):
    stack.pop()
    result.append('-')
  else:
    print('NO')
    flag = False
    break
if(flag):
  for i in result:
    print(i)
  
  

특정 숫자가 나오면 그 숫자에 도달할 때 까지 스택에 숫자 쌓기

스택 제일 위 값이 원하는 값이 아닐 경우, 그 배열은 불가능하단 것을 알아야 한다.

profile
빠르게 성장하는 개발자

0개의 댓글