728x90
반응형

스택과 큐를 둘 다 사용해야 되는 문제이다.

처음에 실수로 문제를 좀 어렵게 생각해서 푸는데 오래 걸렸다. 쉽게 생각하도록 하자!

큐가 없을 때까지 반복 ->  큐의 맨 처음 값이 i가 아니라면 스택에 추가 ->

스택의 맨 마지막 값이 i가 아닐 때까지 pop -> 마지막에 스택이 남아있다면 "Sad", 없다면 "Nice" 출력

from collections import deque

N = int(input())
queue = deque(map(int, input().split()))
stack = deque()
i = 1
while queue:
    if queue and queue[0] == i:
        queue.popleft()
        i += 1
    else:
        stack.append(queue.popleft())
    while stack and stack[-1] == i:
        stack.pop()
        i += 1
        
print("Nice" if not stack else "Sad")
728x90
반응형

+ Recent posts