본문 바로가기
프로그래밍/Python

[파이썬] 리스트로 큐 자료구조 만들기 Queue

by 아임코딩 2024. 2. 5.
728x90
반응형

큐 Queue 란?

큐는 선형 자료구조로, 먼저 저장한 자료가 먼저 출력되는 FIFO (First In First Out) 의 구조를 이룹니다.

예를 들어 설명을 해보겠습니다.

큐를 이용하는 방법은 간단하게 2가지가 있습니다.

1. 자료 추가

2. 자료 뽑기

[] 빈 큐가 있다고 가정해봅시다.

1, 2, 3 자료를 차례대로 추가를 하면 큐는

[1, 2, 3] 이런 형태가 됩니다.

 

2. 자료 뽑기

자료를 뽑을 때에도 추가된 순서대로 뽑기가 됩니다.

자료를 3개를 뽑으면 차례대로 1, 2, 3이 나옵니다.

 

리스트로 큐 만들기 1

파이썬에서 리스트로 큐를 만들기 위한 방법은 많지만 이 글에서는 간단한 2가지 방법을 소개합니다.

첫번째 방법은 자료를 추가할 때는 리스트의 맨 뒤에서부터 추가를 하고

자료를 뽑을 때는 리스트의 맨 앞에서부터 자료를 출력합니다.

코드는 다음과 같습니다.

li = [] # 빈 큐 만들기

li.append(1)    #뒤에서 자료 추가
li.append(2)    #뒤에서 자료 추가
li.append(3)    #뒤에서 자료 추가

print(li)   #큐 출력해보기

print(li.pop(0))    #맨 앞에서 자료 출력
print(li.pop(0))    #맨 앞에서 자료 출력    
print(li.pop(0))    #맨 앞에서 자료 출력

print(li)   #큐 출력해보기

"""
실행 결과 
[1, 2, 3]
1
2
3
[]
"""

리스트에서 기본적으로 제공하는 append() 함수를 이용하면 리스트의 맨 뒤에 자료를 추가할 수 있습니다.

그리고 리스트에서 기본적으로 제공하는 pop() 함수를 이용하면 리스트의 맨 뒤에서 자료를 뽑을 수 있는데,

pop(0) 0 인덱스를 함수 인자로 넣어주면 맨 앞에서 자료를 뽑을 수 있습니다.

이렇게 리스트를 이용해서 큐를 만들 수 있습니다.

 

리스트로 큐 만들기 2

두번째 방법은 자료를 추가할 때는 리스트의 맨 앞에서부터 추가를 하고

자료를 뽑을 때는 리스트의 맨 뒤에서부터 자료를 출력합니다.

코드는 다음과 같습니다.

li = [] # 빈 큐 만들기

li.insert(0,1)    #앞에서 자료 추가
li.insert(0,2)    #앞에서 자료 추가
li.insert(0,3)    #앞에서 자료 추가

print(li)   #큐 출력해보기

print(li.pop())    #맨 뒤에서 자료 출력
print(li.pop())    #맨 뒤에서 자료 출력    
print(li.pop())    #맨 뒤에서 자료 출력

print(li)   #큐 출력해보기

"""
실행 결과 
[3, 2, 1]
1
2
3
[]
"""

리스트에서 제공하는 insert() 함수를 이용하면 원하는 인덱스에 원하는 자료를 추가할 수 있습니다.

인덱스를 0으로 설정하면 맨 앞에서부터 자료를 추가할 수 있습니다.

pop() 함수를 이용하면 맨 뒤에서 자료를 뽑아올 수 있습니다.

이렇게도 간단하게 큐를 만들 수 있습니다.

 

큐 관련 백준 문제풀이

https://imcoding-official.tistory.com/131

 

[파이썬] 백준 1966번 프린터 큐 문제 풀이

문제 설명 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue

imcoding-official.tistory.com

 

728x90
반응형