코딩테스트
                
              백준(Baekjoon) 1874번 : 스택 수열 with Python
                CleanCoder
                 2021. 1. 22. 05:27
              
              
                                    
            
백준에서 문제 보기 : https://www.acmicpc.net/problem/1874
1874번: 스택 수열
1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다.
www.acmicpc.net
난이도
실버 3

알고리즘
1) N번 반복 입력
2) count로 값 세면서 stack에 저장 , 동시에 result 스택에도 '+' 저장
3) stack[-1] 번째 값이 입력값과 같을때 stack pop , result '-' 아닐시 NO
해결 방안
문제에서 요구하는 사항은 '스택'을 구현하여 해결하는 개념을 요구합니다
import sys
input = sys.stdin.readline
N = int(input())
stack = []
result = []
count = 0
flag = True
for i in range(N):
    num = int(input())
    while count < num:
        count += 1
        stack.append(count)
        result.append('+')
    if stack[-1] == num:
        stack.pop()
        result.append('-')
    else:
        flag = False
        break
if flag:
    print("\n".join(result))
else:
    print('NO')
출력
![]()  | 
![]()  | 

