- First In First Out (FIFO) 구조 : 가장 먼저 넣은 거를 먼저 꺼낼 수 있는 구조
Enqueue : 큐에 데이터를 넣는 기능
Dequeue : 큐에서 데이터를 꺼내는 기능
파이썬은 queue 라이브러리를 제공한다 : queue.Queue(), LifoQueue(), PriorityQueue()
import queue
que = queue.Queue()
que.put(3) # enqueue
que.get() # dequeue
que.qsize() # 큐의 사이즈
LifoQueue : 가장 나중에 입력된 데이터가 먼저 출력되는 구조 = 스택
import queue
que = queue.LifoQueue()
que.put('fuck')
PriorityQueue : 데이터마다 우선순위를 붙여서 우선순위가 높은 순서대로 출력
import queue
que = queue.PriorityQueue()
que.put((10,'fucking')) # 튜플로 데이터 넣음
que.put((6,'시발')) # (우선순위, 데이터)
que.put((29, 1))
que.get() # (6,'시발')
백준 10845번 큐
import sys
n = int(sys.stdin.readline().rstrip())
que = []
def sol(com):
if com[0] == 'push':
que.append(int(com[1]))
return
elif com[0] == 'pop':
if len(que) > 0:
data = que[0]
del que[0]
return data
else:
return -1
elif com[0] == 'size':
return len(que)
elif com[0] == 'empty':
if len(que) == 0:
return 1
else:
return 0
elif com[0] == 'front':
if len(que) > 0:
return que[0]
else:
return -1
elif com[0] == 'back':
if len(que) > 0:
return que[-1]
else:
return -1
for i in range(n):
c = list(sys.stdin.readline().rstrip().split())
ans = sol(c)
if ans != None:
print(ans)
'백준 단계별 코딩 테스트' 카테고리의 다른 글
220714 : 1264, 2744, 23037 번 풀이 (0) | 2022.07.22 |
---|---|
스택 Stack (0) | 2021.12.09 |
쉬운 문제부터 여러개 풀어보기! - 날짜 (0) | 2021.11.22 |
쉬운 문제부터 여러개 풀어보기! - 진수 (0) | 2021.11.14 |
다이얼 문제 (0) | 2021.11.11 |