덱을 구현하여 명령을 처리하는 프로그램 작성.
입력: 명령어 수와 명령어
출력: 명령어에 따른 결과 출력
queue를 구현할 때와 비슷한 명령어를 많이 사용하였으며
덱의 경우 front와 back 모두 접근할 수 있기 때문에 append 대신 insert(index, 원소 값)을 사용하였다.
import sys
if __name__ == '__main__':
n = int(sys.stdin.readline())
queue = list()
for i in range(n):
code = sys.stdin.readline()
if (code[:10] == 'push_front'):
queue.insert(0, int(code[11:]))
elif (code[:9] == 'push_back'):
queue.insert(len(queue), int(code[10:]))
elif (code[:9] == 'pop_front'):
if (len(queue) > 0):
print(queue.pop(0))
else:
print(-1)
elif (code[:8] == 'pop_back'):
if (len(queue) > 0):
print(queue.pop(-1))
else:
print(-1)
elif (code[:4] == 'size'):
print(len(queue))
elif (code[:5] == 'empty'):
if (len(queue) > 0):
print(0)
else:
print(1)
elif (code[:5] == 'front'):
if (len(queue) > 0):
print(queue[0])
else:
print(-1)
elif (code[:4] == 'back'):
if (len(queue) > 0):
print(queue[-1])
else:
print(-1)