본문 바로가기
취업준비/코딩 테스트

자료구조 - 큐(QUEUE)

by ag_zero 2021. 10. 30.
728x90

1. 큐 구조

  • 줄을 서는 행위와 유사하다.
  • 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조이다.
    • 음식점에서 가장 먼저 줄을 선 사람이 제일 먼저 음식점에 입장하는 것과 동일
    • FIFO(First-In, First-Out) 또는 LILO(Last-In, Last-Out) 방식으로 스택과 꺼내는 순서가 반대가 된다.

출처: http://www.stoimen.com/blog/2012/06/05/computer-algorithms-stack-and-queue-data-structure/

2. 용어

  • Enqueue : 큐에 데이터를 넣는 기능
  • Dequeue : 큐에서 데이터를 꺼내는 기능

 

3. 파이썬 Queue 라이브러리 활용해서 큐 자료 구조 사용하기

  • queue 라이브러리에는 다양한 큐 구조로 Queue(), LifoQueue(), PriorityQueue() 제공
  • 프로그램을 작성할 때 프로그램에 따라 적합한 자료 구조를 사용
    • Queue(): 가장 일반적인 큐 자료 구조
    • LifoQueue(): 나중에 입력된 데이터가 먼저 출력되는 구조 (스택 구조라고 보면 됨)
    • PriorityQueue(): 데이터마다 우선순위를 넣어서, 우선순위가 높은 순으로 데이터 출력

 

어디에 큐가 많이 쓰일까?

  • 멀티 태스킹을 위한 프로세스 스케쥴링 방식을 구현하기 위해 많이 사용된다.

 

가장 일반적인 큐, FIFO(First-In, First-Out)

import queue

queue_data = queue.Queue()

 

 

데이터 넣기

queue_data.put("coding")
queue_data.put(10)

 

 

데이터 사이즈 확인

queue_data.qsize()

>>> 2

 

get()을 하게 되면 맨 처음 넣은 데이터가 출력되는 것을 확인할 수 있다.

queue_data.get()

>>> 'coding'

 

그 후 다시 사이즈를 확인하면 get()으로 출력된 데이터를 제외한 크기가 나오게 된다.

queue_data.qsize()

>>> 1

'취업준비 > 코딩 테스트' 카테고리의 다른 글

자료구조 - 배열(Array)  (0) 2021.10.29
#1. 부족한 금액 계산하기  (0) 2021.09.14