백준
백준 10866번 어떻게 풀었나, 덱(Deque) 구현
kimbro6
2022. 12. 31. 12:54
코드
import sys
N = int(sys.stdin.readline())
stack = []
for i in range(N):
cmd = sys.stdin.readline().strip()
# push_front X: 정수 X를 덱의 앞에 넣는다.
if "push_front" in cmd:
stack.insert(0, cmd[11:])
# push_back X: 정수 X를 덱의 뒤에 넣는다.
if "push_back" in cmd:
stack.append(cmd[10:])
# pop_front: 덱의 가장 앞에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.
elif cmd == "pop_front":
print(stack.pop(0) if stack else -1)
# pop_back: 덱의 가장 뒤에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.
elif cmd == "pop_back":
print(stack.pop() if stack else -1)
# size: 덱에 들어있는 정수의 개수를 출력한다.
elif cmd == "size":
print(len(stack))
# empty: 덱이 비어있으면 1을, 아니면 0을 출력한다.
elif cmd == "empty":
print(0 if stack else 1)
# front: 덱의 가장 앞에 있는 정수를 출력한다. 만약 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.
elif cmd == "front":
print(stack[0] if stack else -1)
# back: 덱의 가장 뒤에 있는 정수를 출력한다. 만약 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.
elif cmd == "back":
print(stack[-1] if stack else -1)