본문 바로가기

백준

[백준] 10866번 - 덱

반응형

1. 문제

 

2. 코드

from collections import deque
import sys

deq = deque()

n = int(input())
for i in range(n):
    s = sys.stdin.readline()
    
    #push_front
    if s[1] == 'u' and s[5] == 'f':
        s, num = s.split()
        num = int(num)
        deq.appendleft(num)
    
    #push_back
    elif s[1] == 'u' and s[5] == 'b':
        s, num = s.split()
        num = int(num)
        deq.append(num)
    
    #front
    elif s[0] == 'f':
        if len(deq) == 0:
            print(-1)
            continue
        print(deq[0])
    
    #back
    elif s[0] == 'b':
        if len(deq) == 0:
            print(-1)
            continue
        print(deq[len(deq)-1])
    
    #size
    elif s[0] == 's':
        print(len(deq))
    
    #empty
    elif s[0] == 'e':
        if len(deq) == 0:
            print(1)
        else:
            print(0)
            
    #pop_back
    elif s[0] == 'p' and s[4] == 'b':
        if len(deq) == 0:
            print(-1)
            continue
        print(deq.pop())
    
    #pop_front
    elif s[0] == 'p' and s[4] == 'f':
        if len(deq) == 0:
            print(-1)
            continue
        print(deq.popleft())

 

3. 풀이

파이썬 라이브러리 중 deque와 sys를 사용하면 쉽게 풀 수 있다.

728x90
반응형