알고리즘 스터디 큐-18258번
큐 알고리즘 18258번 풀이
study백준 큐 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 짱!