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
반응형
'Agorithm > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 1021번 회전하는 큐(python) (0) | 2021.03.06 |
---|---|
백준 알고리즘 15828번 Router(python) (0) | 2021.03.06 |
백준 알고리즘 18258번 큐 2(python) (0) | 2021.03.06 |
백준 알고리즘 1158번 요세푸스 문제(python) (0) | 2021.03.06 |
백준 알고리즘 18111번 마인크래프트 (python) (0) | 2021.03.06 |