백준 큐 18258번 - 큐2

안녕하세요. GDSC 안드로이드 멤버 한윤재입니다.
백준 큐 18258번 풀이 시작합니다!

풀이

문제는 10845번 큐 시뮬레이터와 동일합니다. 그런데 똑같은 코드를 제출했을 때 시간초과가 생기더라구요. 그래서 이전 문제에서 알게된 deque로 풀었더니 성공!

import sys
from collections import deque
def push(self, item) :
    self.append(item)
    
def pop(self) :
    if len(self) !=0 :
        print(self.popleft())
    else:
        print(-1)
    
def size(self) :
    print(len(self))
    
def empty(self) :
    if len(self) ==0 :
        print(1)
    else :
        print(0)
        
def front(self) :
    if len(self) !=0 :
        print(self[0])        
    else:
        print(-1)

def back(self) :
    if len(self) !=0 :
        print(self[-1])
    else:
        print(-1)
        
        
que = deque()
n= int(sys.stdin.readline())

command = ['']*n

for i in range(n) :
    command[i] = sys.stdin.readline()
     
for i in command :
    if 'push' in i :
        push(que, int(i.split(' ')[1]))
    elif 'pop' in i :
        pop(que)
    elif 'size' in i :
        size(que)
    elif 'empty' in i :
        empty(que)
    elif 'front' in i :
        front(que)
    elif 'back' in i :
        back(que)

마무리

deque 짱!