본문 바로가기

코딩테스트

[백준]스택수열 파이썬

N = int(input())
stack = []
result = []
checkTrue = True
count = 0

for i in range(N):
  input_number = int(input())

  while count < input_number:
    count += 1
    stack.append(count)
    print(stack,"쌓이는 중")
    result.append("+")
    print(result)
    if count == input_number:
      stack.pop()
      result.append("-")
      print(result,'삭제 되었음')
      break
  
  if stack and stack[-1] == input_number:
    stack.pop()
    result.append("-")
    print(result,'삭제 되었음')

  
  if stack and stack[-1] > input_number: #스택의 마지막수가 인풋넘버보다 큰 경우.
    checkTrue = False

      


if checkTrue:
  for i in result:
    print(i)
else:
  print("NO")

물론 중간 중간의 print는 빼고 제출한 답안지다.