[알고리즘] 스택과 큐(2)

진주·2022년 2월 28일
0

알고리즘

목록 보기
2/3

🥑 큐(Queue)

영어로 Queue : '일이 처리되기를 기다리는 리스트'라는 의미이다.
프로그래밍에서 목록 or 리스트에서 접근이 양쪽에서 가능한 구조로 FIFO(First-in, First-Out)가 기본 원리이다.

  • put
  • peek
  • get

🍞 큐(Queue)의 구조


put() : box1, 2, 3, 4를 올린다
peek() : 큐에 가장 먼저 들어간 데이터가 무엇인지 확인할 수 있다.

get() : 큐에 가장 먼저 들어왔던 box1이 list에서 빠져나온 것을 확인할 수 있다.


🍒 python 큐의 구현 방법 3가지

  • 직접 구현
  • 이미 구현된 클래스 import
  • List를 큐로 구현

1) python 큐 직접 구현

# list를 가지고 있는 Queue를 선언하고, 클래스명을 Queue로 지정한다.
# put() : 데이터를 넣을 수 있는 함수, list의 append()함수와 동일하다.
# peek() : queue의 가장 앞에있는(먼저 들어간 데이터)를 확인하기 위해 index 0을 선택한다.
# get() : stack에서 pop(0)은 index값이 0인 데이터(가장 먼저 들어간)를 추출할 수 있다. 

class Queue(list) :

	put = list.append()

	def peek(self):
		return self[0]
    
	def get(self):
		return self.pop(0)
 

1) python 큐 직접 구현 활용

1. put() 함수 사용

put() : queue에 데이터를 추가한다.

  q = Queue()
  q.put(1)
  q.put(5)
  q.put(10)
  print("my queue is :" , q)

2. get() 함수 사용

get() : 가장 먼저 들어간 데이터를 추출한다.(데이터 삭제된다)

print("removed value is : ", q.get(0) ) 
print("my queue is : ", q) 

3. peek() 함수 사용

peek() : 데이터를 추출하지 않고 확인만 한다.

print("peeked value is :", q.peek())
print("my queue is : ", q) 



2) python 구현된 클래스 import

Queue 클래스를 직접 구현할 필요 없이 바로 사용 가능하다.

1. put() 함수 사용

from queue import Queue

q = Queue()
q.put(1)
q.put(5)
q.put(10)
print("my queue is :", q)

2. get() 함수 사용

get() : 가장 먼저 들어간 데이터인 1을 추출한다.
queue에는 더이상 1이 존재하지 않는다.

3. peek() 함수 사용




3) python list를 큐로 활용

🍎 큐(Queue)의 활용

프린트 인쇄 대기열

프린터는 절대 거꾸로 인쇄하지 않는다.
먼저 명령을 받은 문서1부터 차례대로 출력한다.

너비 우선 탐색(BFS)

profile
진주의 코딩일기

0개의 댓글

관련 채용 정보