728x90
Key Point
1. 스택을 사용하는 문제이지만 실제로 덱을 사용하여 풀면 좋다.(시간 복잡도 면에서)
2. 정수를 저장하는 덱이라고 정의했기 때문에 명령어를 입력받을 때 str로 입력 받고
int형으로 변경해주는 작업이 필요하다.
3. 명령어 수행 하나가 종료되면 입력 받는 list를 비어주자.
import sys
from collections import deque
N =int(sys.stdin.readline())
queue = deque([])
for _ in range(N):
ord = list(sys.stdin.readline().split())
if len(ord) == 2:
if ord[0] == 'push':
queue.append(int(ord[1])) #좌측(앞)에 삽입
else: # 길이가 1일 경우
if ord[0] == 'pop':
if len(queue) == 0:
print(-1)
else:
print(queue.pop())
elif ord[0] == 'size':
print(len(queue))
elif ord[0] == 'empty':
if len(queue) == 0:
print(1)
else:
print(0)
elif ord[0] == 'top':
if len(queue) !=0:
print(queue[-1])
else:
print(-1)
ord.clear()
728x90
'백준 풀이' 카테고리의 다른 글
[백준/BOJ] - 1929번 python 풀이 - '에라토스테네스의 체' (0) | 2022.11.23 |
---|---|
[백준/BOJ] - 10845번 python 풀이 - deque, 덱 활용 (0) | 2022.11.23 |
[백준/BOJ] - 10866번 python 풀이 - deque, 덱 활용 (0) | 2022.11.22 |
[백준/BOJ] - 10816번 python 풀이 - dict, dictionary 개념 (0) | 2022.11.22 |
[백준/BOJ] - 4949번 python 풀이 - stack 개념 (0) | 2022.11.22 |