2020. 10. 22. 22:03ㆍIT공부/자료구조&알고리즘 연습
오늘은 큐에 대해서 강의를 들었습니다.
08 큐(1)
--> queue는 운영체제에서도 많이 쓰이고 인터넷에서 네트워크 기능에서 많이 사용됨
A. 큐의 구조
--> 라이브러리 이용하지 않고 큐를 직접 데이터 타입이나 리스트를 사용해서 구현하는 것이 좋다
-->가장 먼저 넣은 데이터를 가장 먼저 뺄 수 있다
= 음식점에서 줄을 선 사람이 가장 먼저 음식을 먹을 수 있다
= 줄을 서는 것과 유사
= FIFO ( First In First Out) + LILO ( Last In Last Out)
= 스택과 정반대로 기능
B.알아둘것
--> 데이터 넣고 빼기
---데이터 넣기 ENQUEUE 데이터 빼기 DEQUEUE
C. 파이썬의 큐 활용
-->파이썬 QUEUE 라이브러리 활용해서 큐 자료구조 사용하기
--> QUEUE() : 가장 일반적인 자료구조
---> LifoQueue(): 나중에 입력된 데이터가 먼저 출력되는 구조
---->PriorityQueue(): 데이터마다 우선순위를 넣어 우선순위가 높은 순으로 데이터 출력
Queue() 로 큐 만들기
import queue
data_queue = queue.Queue()
a.데이터 입력하기
data_queue.put(“funcoding”)
data_queue.put(1)
b.데이터 사이즈 출력
data_queue.qsize()
c.데이터 인자 출력
data_queue.get() = 맨먼저 넣어진 데이터 출력된다
data_queue.qsize() = funcoding을 제외한 1이 있는 data_queue 사이즈 출력
data_queue.get() = 그다음 입력된 1을 출력
08 큐 (2) = LIFO ( Last In First Out)
import quere
data_queue = queue.LifoQueue() = 이 함수를 사용하는 queue를 선언
data_queue.put(“funcoding”) =data_queue 에 put을 사용해 funcoding 을 넣어
data_queue.put(1) = data_queue에 put을 사용해 1 넣어
data_queue.qsize() ==> 결과: queue의 크기 2출력
data_queue.get() ==> 결과: LIFO를 사용해 마지막에 넣었던 1이 출력
08 큐 (3) = Priority Queue() 로 큐 만들기
--> 데이터를 넣을 때 각각의 데이터 마다 우선순위 번호를 매겨
데이터를 추출할 때 우선순위가 가장 높은 것을 추출
import queue
data_queue = queue.PriorityQueue() = 이 함수를 사용하는 queue를 선언
형식: data_que.put( ( 우선순위, 값 ) )
data_que.put ( ( 10 , “korea” ) )
data_que.put( ( 5, 1 ) )
data_que.put ( ( 15, “china” ) )
data_que.qsize() ==> 결과 3출력
data_qsize.get( ) ==> 우선순위가 제일 높은 것을 출력(5,1)
------>우선순위의 번호가 낮은 게 우선순위가 제일 높은 것
Q 어디에 큐가 많이 쓰일까
-->운영체제에서 멀티 태스킹을 위한 프로세스 스케줄링 방식을 구현하기 위해 사용됨
-->큐의 경우에는 특별히 장단점 보다는 큐의 활용 예로 프로세스 스케쥴링 방식을 함께 이해해두는 것이 좋음
EXAMPLE 1 리스트 변수로 큐를 다루는 enqueue, dequeue 기능 구현하기
queue_list = list( ) ==> 리스트로 만들어
def enqueue( data ) -- enqueue 구현하기
queue_list.append( data )
def dequeue( ) --dequeue 구현하기
data =queue_list[ 0 ]
del que_list[ 0 ] - 뽑혀진 데이터 삭제 – 삭제안하면 계속 똑 같은 값이 나와
return data
반복문으로 값 넣기
for index in range( 10 ) : - 0부터 10까지 데이터를 넣어
enqueue(index)
len(queue_list)
dequeue( )
--> 이번 강의를 통해 큐의 특징과 종류, 그리고 갖고 있는 함수와 큐를 사용하는 방법에 대해서 학습할 수 있었습니다.
강의에 대해 정확하게 알고 싶다면
'IT공부 > 자료구조&알고리즘 연습' 카테고리의 다른 글
[패스트캠퍼스 수강 후기] {코딩테스트인강} 100% 환급 챌린지 6 회차 미션 (0) | 2020.10.24 |
---|---|
[패스트캠퍼스 수강 후기] {코딩테스트인강} 100% 환급 챌린지 5 회차 미션 (0) | 2020.10.23 |
[패스트캠퍼스 수강 후기] {코딩테스트인강} 100% 환급 챌린지 3 회차 미션 (0) | 2020.10.21 |
[패스트캠퍼스 수강 후기] {코딩테스트인강} 100% 환급 챌린지 2 회차 미션 (0) | 2020.10.20 |
[패스트캠퍼스 수강 후기] {코딩테스트인강} 100% 환급 챌린지 1 회차 미션 (0) | 2020.10.19 |