1번 문제.
https://www.acmicpc.net/problem/10866
-> 덱
import sys
from collections import deque
# 명령의 수
n = int(sys.stdin.readline())
# 명령어 함수 처리
def push_front(x, deq):
deq.appendleft(x)
return deq
def push_back(x, deq):
deq.append(x)
return deq
def pop_front(deq):
if deq:
print(deq.popleft())
else:
print(-1)
def pop_back(deq):
if deq:
print(deq.pop())
else:
print(-1)
def size(deq):
print(len(deq))
def empty(deq):
if deq:
print(0)
else:
print(1)
def front(deq):
if deq:
print(deq[0])
else:
print(-1)
def back(deq):
if deq:
print(deq[-1])
else:
print(-1)
# 명령어 사전
order_dict = {
'push_front' : push_front,
'push_back' : push_back,
'pop_front' : pop_front,
'pop_back' : pop_back,
'size' : size,
'empty' : empty,
'front' : front,
'back' : back
}
# 명령어 처리
deq = deque()
for _ in range(n):
# push_back과 push_front는 띄어쓰기 후에 값을 더 받아옴
# 명령을 리스트 형태로 받아오는 것
order = sys.stdin.readline().split()
# order[0]=명령어, order[1]=정수
cmd = order[0]
if len(order) == 1:
# pop_front, pop_back, size, empty,front, back
order_dict[cmd](deq)
else:
# push_front, push_back -> 이 둘은 값을 입력도 해줘야 함.
x = int(order[1])
deq = order_dict[cmd](x, deq)
=======================================================
후.. 덱을 사용하는건 거의 처음 하는거 같다..
익숙해져야지..
EDA & 웹 크롤링을 하면서부터는 뭔가 정신이 없다..ㅠㅜ
새로운 것도 많이 배우고 하니까.. 스터디 문제를 풀 시간이 많지 않다..ㅠㅠ 하루에 하나라도 쉬운거라도,, 꼭 하나씩은 풀어나갈 수 있길....ㅠ