백준 10845(파이썬):큐
백준 10845번 문제 정리글 입니다.
문제 출처-https://www.acmicpc.net/problem/10845
문제 내용
나의 풀이
def push(queue,num):
queue.append(num)
def pop(queue):
if len(queue)>0:
answer=queue.pop(0)
return print(answer)
else:
return print(-1)
def size(queue):
answer=len(queue)
return print(answer)
def empty(queue):
if len(queue)>0:
return print(0)
else:
return print(1)
def front(queue):
if len(queue)>0:
answer=queue[0]
return print(answer)
else:
return print(-1)
def back(queue):
if len(queue)>0:
answer=queue[-1]
return print(answer)
else:
return print(-1)
n= int(input())
queue=[]
for i in range(n):
order=list(input().split())
if order[0]=='push':
push(queue,order[1])
elif order[0]=='pop':
pop(queue)
elif order[0]=='size':
size(queue)
elif order[0]=='empty':
empty(queue)
elif order[0]=='front':
front(queue)
else:
back(queue)
단순히, 리스트 연산에 append,pop,len등의 연산자를 이용하여 큐를 구현했다.
그런데 처음에 시간초과가 나와 의문이들어서 찾아보니 input()으로하면 시간초과가 발생한다고 한다… 따라서, sys.stdin.readline()을 사용해 줘야 한다…. 또, push 구현시 append말고 insert를 사용할 수 있다
풀이를 본 후
input과 sys.stdin.readline 의 차이에 대해서 한번 알아볼 수 있는 좋은 문제였다…
해결한 후
백준에서 문제를 풀때는 시간초과를 방지하기 위해 sys.stdin.readline을 사용하는 것이 좋다…