덱 기본 구조 활용
알고리즘: Deque
import sys
d = []
n = int(sys.stdin.readline())
for i in range(n):
cmd = sys.stdin.readline().split()
if cmd[0] == 'push_front':
d.insert(0, int(cmd[1])) # 맨 앞 삽입
elif cmd[0] == 'push_back':
d.append(int(cmd[1])) # 맨 뒤 삽입
elif cmd[0] == 'pop_front':
if len(d) == 0:
print(-1)
else:
print(d.pop(0)) # 맨 앞 pop
elif cmd[0] == 'pop_back':
if len(d) == 0:
print(-1)
else:
print(d.pop()) # 맨 뒤 pop
elif cmd[0] == 'size':
print(len(d))
elif cmd[0] == 'empty':
if len(d) == 0:
print(1)
else:
print(0)
elif cmd[0] == 'front':
if len(d) == 0:
print(-1)
else:
print(d[0])
else:
if len(d) == 0:
print(-1)
else:
print(d[-1])
이번 문제는 덱 자료구조를 다루는 기본 문제였다
덱 자료구조에 관한 자세한 내용과 구현(in c)도 아직 작성을 하지 못하였다..
자료구조 관련 기본 문제를 먼저 풀면서 하루 빨리 복습을 해야겠다는 생각 +
파이썬으로도 한 번 구현을 해봐야겠다는 생각이 좀씩 들었다 ㅎㅎ
일단은 이번 기회에 파이썬 리스트 구조에 대해 좀 적응하는 것으로!
딱히 정리할 것이 없음!