

문제를 살펴보면 18258 큐2 문제와 비슷하지만 이를 큐가 아닌 덱으로 표현한다는 차이점이 존재한다
몇번 입력받을지 int(input())을 통해 입력받고 for문을 통해 명령어를 받아온다
여기서 유의할 점은 1, 2 가 입력될 경우 뒤의 숫자도 입력을 받아야하기 때문에
split()을 이용하여 받아주어야한다
그리고 문제의 조건에 맞게 코드를 작성하면 되는데, deque모듈은 appendleft(), append(), pop(), popleft()를 사용하면
덱의 특징인 앞에서 삽입 삭제, 뒤에서 삽입 삭제가 모두 이루어질 수 있다
import sys
from collections import deque
n = int(input())
deq = deque()
for _ in range(n):
cmd = sys.stdin.readline().split()
if cmd[0] == '1':
deq.appendleft(cmd[1])
elif cmd[0] == '2':
deq.append(cmd[1])
elif cmd[0] == '3':
if deq:
print(deq.popleft())
else:
print(-1)
elif cmd[0] == '4':
if deq:
print(deq.pop())
else:
print(-1)
elif cmd[0] == '5':
print(len(deq))
elif cmd[0] == '6':
if deq:
print(0)
else:
print(1)
elif cmd[0] == '7':
if deq:
print(deq[0])
else:
print(-1)
elif cmd[0] == '8':
if deq:
print(deq[-1])
else:
print(-1)'Baekjoon' 카테고리의 다른 글
| [Baekjoon]백준 24511 queuestack(실버 3) - Python (0) | 2024.12.03 |
|---|---|
| [Baekjoon]백준 2346 풍선 터뜨리기(실버 3) - Python (0) | 2024.12.02 |
| [Baekjoon]백준 11866 요세푸스 문제 0(실버 4) - Python (0) | 2024.11.30 |
| [Baekjoon]백준 2164 카드 2(실버 4) - Python (1) | 2024.11.29 |
| [Baekjoon]백준 18258 큐 2(실버 4) - Python (2) | 2024.11.28 |