본문 바로가기
Programming/- Python

[Python] Queue(큐) 기본 사용법

by 완벽주의탈피 2022. 11. 3.

역시나 코딩 테스트에서 필수적인 자료구조 중 하나인 Queue를 라이브러리를 활용해 사용해보자.

사용법은 어렵지 않다. 활용이 더 중요하다.

 

 


 

 

Queue (큐) 기본 정의


  • 한쪽 끝에서만 자료의 삽입, 삭제가 가능한 FIFO (First In First Out) 형식의 선형 자료구조
  • 스택과는 달리 가장 먼저 삽입한 자료가 가장 먼저 반환되는 구조
  • push, pop, isempty, front, back 등의 연산을 가짐

 

출처 : TOPCIT 에센스

 

스택과는 달리 데이터가 삽입되는 곳과 삭제되는 곳이 다른 자료구조

즉, 뒤에서만 삽입되고 앞에서는 삭제만 할 수 있는 구조로, 삽입된 순서대로 원소가 저장되어 있음

 

BFS, Streaming 등등의 알고리즘 문제에 유용하다.

 

 

 

선언 (init)


  • queue 라이브러리 사용
  • queue.Queue()로 선언 및 초기화

 

# Queue (init)

import queue
myqueue = queue.Queue()

 

리스트와 마찬가지로 비어 있는 자료구조를 선언할 수 있다.

 

 

 

push : 데이터 삽입


  • 큐에 데이터 삽입
  • queue.put(x)

 

# Queue (Put)

myqueue.put('1')
myqueue.put(1)

 

put을 통해 데이터를 삽입하면, 가장 마지막인 맨 끝에 원소가 삽입된다.

 

 

 

pop : 데이터 삭제


  • 큐에서 데이터 삭제하여 반환
  • queue.get()

 

# Stack (pop)

myqueue = [1, 2, 3, 4]

myqueue.get()	# 1
myqueue.get()	# 2

 

get을 사용해 제거와 동시에 값이 반환된다.

즉, 가장 처음에 삽입된 맨 앞에 있는 원소가 삭제된다.

 

 

 

데이터 반환


  • 큐의 맨 앞, 뒤에 있는 데이터 값 반환
  • q.queue[0] / q.queue[-1]

 

# Queue (Front/Back)

myqueue = [1, 2, 3, 4]

myqueue.queue[0]	# 1
myqueue.queue[-1]	# 4

 

원소를 삭제하지 않고 반환한다.

 

 

 

isEmpty() : 비어 있는지 확인


  • 큐에 원소가 없으면 true 값 반환, 있으면 false 값 반환
  • q.empty()

 

# Queue (isEmpty)

myqueue = [1, 2]
myqueue.empty()	# False

 

 

 

 

size() : 원소의 개수 확인


  • 큐의 사이즈 구하기
  • q.qsize()

 

# Queue (Size)

myqueue = [1, 2, 3, 4]
myqueue.qsize()	# 4

 

 

댓글