역시나 코딩 테스트에서 필수적인 자료구조 중 하나인 Queue를 라이브러리를 활용해 사용해보자.
사용법은 어렵지 않다. 활용이 더 중요하다.
Queue (큐) 기본 정의
- 한쪽 끝에서만 자료의 삽입, 삭제가 가능한 FIFO (First In First Out) 형식의 선형 자료구조
- 스택과는 달리 가장 먼저 삽입한 자료가 가장 먼저 반환되는 구조
- push, pop, isempty, front, back 등의 연산을 가짐
스택과는 달리 데이터가 삽입되는 곳과 삭제되는 곳이 다른 자료구조
즉, 뒤에서만 삽입되고 앞에서는 삭제만 할 수 있는 구조로, 삽입된 순서대로 원소가 저장되어 있음
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
'Programming > - Python' 카테고리의 다른 글
[Python] Deque (데크) 기본 사용법 (0) | 2022.11.06 |
---|---|
[Python] Dictionary (딕셔너리) 정리 (0) | 2022.11.02 |
[Python] Stack (스택) 기본 사용법 (0) | 2022.06.20 |
[Python] Set (집합) : 중복 없는 자료형 (0) | 2022.05.25 |
[Python] 반복문 사용 : range / enumerate (0) | 2022.05.12 |
댓글