개발자 성장 기록/코테
[백준] 18258번 큐2 Python
으노방
2022. 9. 4. 19:50
내풀이
def push(data):
queue_list.append(data)
def pop():
if len(queue_list) == 0:
return -1
else:
data = queue_list[0]
del queue_list[0]
return data
def size():
data = len(queue_list)
return data
def empty():
if len(queue_list) == 0:
return 1
else:
return 0
def front():
if len(queue_list) == 0:
return -1
else:
data = queue_list[0]
return data
def back():
if len(queue_list) == 0:
return -1
else:
data = queue_list[-1]
return data
if __name__ == '__main__':
n = int(input())
queue_list = list()
result = list()
for _ in range(n):
txt = input()
if 'push' in txt:
t, n = txt.split()
n = int(n)
push(n)
elif txt == 'pop':
p = pop()
result.append(p)
elif txt == 'size':
s = size()
result.append(s)
elif txt == 'front':
if len(stack_list) == 0:
result.append(-1)
else:
t = front()
result.append(t)
elif txt == 'empty':
e = empty()
result.append(e)
elif txt == 'back':
b = back()
result.append(b)
for r in result:
print(r)
결과
런타임 에러남^^
메모리를 너무 많이 잡아 먹어서 그런다. 생각해 보니까 파이썬에서 Queue 지원하고 있단 걸 깜빡하고 있었다...
정답 풀이
import sys
from collections import deque
queue = deque()
N = int(sys.stdin.readline())
for _ in range(N) :
i = sys.stdin.readline().split()
if i[0] == 'push' :
queue.append(int(i[1]))
elif i[0] == 'pop' :
if not queue :
print (-1)
else :
print(queue[0])
queue.popleft()
elif i[0] == 'size' :
print(len(queue))
elif i[0] == 'empty' :
if len(queue) == 0 :
print(1)
else :
print(0)
elif i[0] == 'front' :
if not queue:
print(-1)
else :
print(queue[0])
elif i[0] == 'back' :
if not queue :
print(-1)
else :
print(queue[-1])