큐 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
'프로그래밍 > Python' 카테고리의 다른 글
[파이썬] 백준 1978번 소수 찾기 문제 풀이 (0) | 2024.02.05 |
---|---|
[파이썬] 백준 1966번 프린터 큐 문제 풀이 (2) | 2024.02.05 |
[파이썬] 백준 1929번 소수 구하기 문제 풀이 (0) | 2024.02.05 |
[파이썬] 제곱근 루트 구하기 ** math sqrt() (1) | 2024.02.05 |
[파이썬] 백준 1920번 문제 풀이 수찾기 (이분 탐색, 이진 탐색) (0) | 2024.02.05 |