백준 10866(파이썬):덱
백준 10866번 문제 정리글 입니다.
문제 출처-https://www.acmicpc.net/problem/10866
문제 내용
나의 풀이
import sys
n= int(sys.stdin.readline())
queue=[]
for i in range(n):
order=list(sys.stdin.readline().split())
if order[0]=='push_front':
queue.insert(0,order[1])
elif order[0]=='push_back':
queue.append(order[1])
elif order[0]=='pop_front':
if len(queue)>0:
answer=queue.pop(0)
print(answer)
else:
print(-1)
elif order[0]=='pop_back':
if len(queue)>0:
answer=queue.pop()
print(answer)
else:
print(-1)
elif order[0]=='size':
answer=len(queue)
print(answer)
elif order[0]=='empty':
if len(queue)>0:
print(0)
else:
print(1)
elif order[0]=='front':
if len(queue)>0:
answer=queue[0]
print(answer)
else:
print(-1)
else:
if len(queue)>0:
answer=queue[-1]
print(answer)
else:
print(-1)
큐를 만드는 문제(백준 10845번)에서 앞뒤에 각각 삽입, 삭제 기능만 추가하면 데크를 만들 수 있다.
굳이 함수를 구현하지 않고 조건문안에서 처리하도록 했다.
풀이를 본 후
대부분 유사하게 해결
해결한 후
데크의 개념을 다시한번 확인하는 좋은 문제였다…