https://www.acmicpc.net/problem/18258
SOLUTION
큐를 구현할 때 리스트의 start 위치를 하나씩 바꾸어 가면서 하면 빠른 시간 내에 풀 수 있다.
큐의 가장 큰 문제는 리스트의 앞에서 자료를 뺄 때 O(n)의 시간이 걸린다는 점.
그러나 덱deque과 pypy로 풀리기에 pass하였다.
PYTHON CODE
from collections import deque
import sys
class fire:
def __init__(self):
self.queue = deque()
def push(self, num):
self.queue.append(num)
def pop(self):
if self.queue:
return self.queue.popleft()
else:
return -1
def size(self):
return len(self.queue)
def empty(self):
if self.queue:
return 0
else:
return 1
def front(self):
if not self.queue:
return -1
else:
return self.queue[0]
def back(self):
if not self.queue:
return -1
else:
return self.queue[-1]
case = int(input())
test = fire()
source = [list(map(str, sys.stdin.readline().split())) for _ in range(case)]
for i in source:
cmd = i[0]
if len(i) == 2:
test.push(i[1])
elif cmd =="size":
print(test.size())
elif cmd =="empty":
print(test.empty())
elif cmd =="pop":
print(test.pop())
elif cmd =="front":
print(test.front())
elif cmd =="back":
print(test.back())
'Programming [Python] > 백준 알고리즘 솔루션' 카테고리의 다른 글
#365 백준 파이썬 [2711] 오타맨 고창영 (0) | 2020.01.13 |
---|---|
#364 백준 파이썬 [2592] 대표값 (0) | 2020.01.13 |
#362 백준 파이썬 [1004] 어린 왕자 (0) | 2020.01.13 |
#361 백준 파이썬 [1735] 분수 합 (0) | 2020.01.13 |
#360 백준 파이썬 [13300] 방 배정 (0) | 2020.01.13 |