백준

백준 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)