정수를 저장하는 덱(Deque)를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.
첫째 줄에 주어지는 명령의 수 N이 주어지고 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어짐.
push_front, push_back 명령을 제외한 나머지 명령에서 출력해야하는 내용을 출력
Deque 클래스를 구현하고 그 안에 각 명령들이 수행해야하는 동작을 넣었음.
그리고 if문으로 각각의 명령들을 수행함.
import sys
class Deque:
def __init__(self):
self.deque = []
def push_front(self, x):
self.deque.insert(0, x)
def push_back(self, x):
self.deque.append(x)
def pop_front(self):
if len(self.deque) == 0:
return -1
return self.deque.pop(0);
def pop_back(self):
if len(self.deque) == 0:
return -1
return self.deque.pop();
def size(self):
return len(self.deque)
def empty(self):
return int(len(self.deque) == 0)
def front(self):
if len(self.deque) == 0:
return -1
return self.deque[0]
def back(self):
if len(self.deque) == 0:
return -1
return self.deque[-1]
n = int(sys.stdin.readline())
inputs = [sys.stdin.readline().rstrip() for _ in range(n)]
d = Deque()
def doDeque(command):
command = command.split(' ')
if command[0] == 'pop_front': print(d.pop_front())
elif command[0] == 'pop_back': print(d.pop_back())
elif command[0] == 'size': print(d.size())
elif command[0] == 'empty': print(d.empty())
elif command[0] == 'front': print(d.front())
elif command[0] == 'back': print(d.back())
elif command[0] == 'push_front': d.push_front(command[1])
else: d.push_back(command[1])
for input in inputs:
doDeque(input)