sm 기술 블로그
161. 10866(덱) - 파이썬 본문
from collections import deque
import sys
input = sys.stdin.readline
N = int(input())
queue = deque([])
result = []
for _ in range(N):
tmp = list(input().split())
S = ''
num = 0
if len(tmp) == 1:
S = tmp[0]
else:
S = tmp[0]
num = int(tmp[1])
if S == 'push_back':
queue.append(num)
elif S == 'push_front':
queue.appendleft(num)
elif S == 'pop_front':
if queue:
result.append(str(queue.popleft()))
else:
result.append("-1")
elif S == 'pop_back':
if queue:
result.append(str(queue.pop()))
else:
result.append("-1")
elif S == 'size':
result.append(str(len(queue)))
elif S == 'empty':
if queue:
result.append("0")
else:
result.append("1")
elif S == 'front':
if queue:
result.append(str(queue[0]))
else:
result.append("-1")
elif S == 'back':
if queue:
result.append(str(queue[-1]))
else:
result.append("-1")
print("\n".join(result))
문제요약
- push_front X: 정수 X를 덱의 앞에 넣는다.
- push_back X: 정수 X를 덱의 뒤에 넣는다.
- pop_front: 덱의 가장 앞에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.
- pop_back: 덱의 가장 뒤에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.
- size: 덱에 들어있는 정수의 개수를 출력한다.
- empty: 덱이 비어있으면 1을, 아니면 0을 출력한다.
- front: 덱의 가장 앞에 있는 정수를 출력한다. 만약 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.
- back: 덱의 가장 뒤에 있는 정수를 출력한다. 만약 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.
설명
- push_front X: 정수 X를 덱의 앞에 넣는다.
if S == 'push_back':
queue.append(num)
- push_back X: 정수 X를 덱의 뒤에 넣는다.
elif S == 'push_front':
queue.appendleft(num)
- pop_front: 덱의 가장 앞에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.
elif S == 'pop_front':
if queue:
result.append(str(queue.popleft()))
else:
result.append("-1")
- pop_back: 덱의 가장 뒤에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.
elif S == 'pop_back':
if queue:
result.append(str(queue.pop()))
else:
result.append("-1")
- size: 덱에 들어있는 정수의 개수를 출력한다.
elif S == 'size':
result.append(str(len(queue)))
- empty: 덱이 비어있으면 1을, 아니면 0을 출력한다.
elif S == 'empty':
if queue:
result.append("0")
else:
result.append("1")
- front: 덱의 가장 앞에 있는 정수를 출력한다. 만약 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.
elif S == 'front':
if queue:
result.append(str(queue[0]))
else:
result.append("-1")
- back: 덱의 가장 뒤에 있는 정수를 출력한다. 만약 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.
elif S == 'back':
if queue:
result.append(str(queue[-1]))
else:
result.append("-1")
'문제 > 백준_파이썬' 카테고리의 다른 글
163. 5430(AC) - 파이썬 (0) | 2022.07.28 |
---|---|
162. 1021(회전하는 큐) - 파이썬 (0) | 2022.07.27 |
160. 1966(프린트 큐) - 파이썬 (0) | 2022.07.26 |
159. 11866(요세푸스 문제 0) - 파이썬 (0) | 2022.07.26 |
158. 2164(카드2) - 파이썬 (0) | 2022.07.26 |
Comments