Notice
Recent Posts
Recent Comments
Link
jyamethyst21 님의 블로그
백준 28279번- '덱 2' (PYTHON 풀이) 본문
문제:

덱과 관련된 문제이다. 덱 역시 스택, 큐와 같은 자료구조로, 스택과 큐 역할을 전부 할 수 있는 자료구조라고 보면 된다.
최근에 많이 사용했던 collections 라이브러리 불러와서 사용하면 될 것 같고, 잘 모르더라도 설명 그대로 코드를 작성하면 쉽게 풀 수 있을 것이다.
풀이:
from collections import deque
import sys
N = int(input())
dq = deque()
for i in range(N):
a = sys.stdin.readline().split()
if a[0] == '1':
dq.appendleft(int(a[1]))
elif a[0] == '2':
dq.append(int(a[1]))
elif a[0] == '3':
if not dq:
print(-1)
else:
d = dq.popleft()
print(d)
elif a[0] == '4':
if not dq:
print(-1)
else:
q = dq.pop()
print(q)
elif a[0] == '5':
print(len(dq))
elif a[0] == '6':
if not dq:
print(1)
else:
print(0)
elif a[0] == '7':
if not dq:
print(-1)
else:
print(dq[0])
elif a[0] == '8':
if not dq:
print(-1)
else:
print(dq[-1])
특별하게 알아야 하는 것은 없고 이전에 deque 불러와서 썼던 것처럼 이를 활용해서 바로 코드로 짜면된다.
pop, popleft, append, appendleft 메서드 정도만 알면 되는데 pop은 끝자리 삭제, popleft는 맨 앞자리 삭제, append는 맨 끝에 값 추가, appendleft는 맨 앞에 값 추가를 하는 메서드이다. 이를 활용하면 문제 그대로 작성할 수 있고 시간 초과도 없이 잘 풀린다!
'CODING 💻' 카테고리의 다른 글
| 백준 11050번- '이항 계수 1' (PYTHON 풀이) (0) | 2025.10.30 |
|---|---|
| 백준 10870번- '피보나치 수 5' (PYTHON 풀이) (0) | 2025.10.29 |
| 백준 11866번- '요세푸스 문제 0' (PYTHON 풀이) (0) | 2025.10.27 |
| 백준 12789번- '도키도키 간식드리미' (PYTHON 풀이) (0) | 2025.10.26 |
| 백준 2164번- '카드2' (PYTHON 풀이) (0) | 2025.10.25 |
