S3, Queue, Stack
풀이
- S3 치곤 조금 어려웠던 문제
- 현재 줄 서있는 부분을
deque
로, 왼쪽 꺾인 부분을 stack
으로 구현했다.
from sys import stdin
from collections import deque
n = int(stdin.readline())
arr = deque(list(map(int, stdin.readline().split())))
stack = []
target = 1
while arr:
if target == arr[0]:
arr.popleft()
target += 1
elif len(stack) > 0 and target == stack[-1]:
stack.pop()
target += 1
else:
if len(stack) == 0 or (len(stack) > 0 and stack[-1] > arr[0]):
stack.append(arr.popleft())
else:
print("Sad")
exit()
if len(stack) > 0:
while stack:
if target == stack[-1]:
stack.pop()
target += 1
else:
print("Sad")
exit()
print("Nice" if not stack else "No")