-
[백준 1874번] 스택 수열Coding Test/백준 2021. 1. 5. 02:12
# 문제
내 풀이
from collections import deque n = int(input()) nums = deque([int(input()) for _ in range(n)]) # 주어진 수열을 큐 형태로 사용 stack = [] result = [] # 스택에 1 ~ n까지의 수를 오름차순으로 삽입 for i in range(1, n + 1): stack.append(i) result.append('+') # nums와 stack에 원소가 있고, nums의 첫번째 값이 stack의 최상단 값과 같다면 while nums and stack and nums[0] == stack[-1]: stack.pop() # 스택의 최상단 값 제거 nums.popleft() # 큐의 맨 앞에 있는 값 제거 result.append('-') # nums에 원소가 남아 있다면 'NO'를 출력 if nums: print("NO") # nums가 비어있다면 result의 연산자들을 모두 출력 else: for i in result: print(i)
'Coding Test > 백준' 카테고리의 다른 글
[백준 7576번] 토마토 (0) 2021.01.06 [백준 1021번] 회전하는 큐 (0) 2021.01.05 [백준 1966번] 프린터 큐 (0) 2021.01.05 [백준 11866번] 요세푸스 문제 0 (0) 2021.01.05 [백준 2164번] 카드2 (0) 2021.01.05