PLOD

[python] stack and queue 사용법 본문

개발 공부/Python

[python] stack and queue 사용법

훌룽이 2022. 11. 18. 16:55

코딩테스트를 준비하거나 프로젝트를 구현할 때 데이터를 탐색하는 과정은 필수불가결하다

탐색은 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정을 의미한다. 프로그래밍에서는

graph, tree등 자료구조 안에서 탐색을 하는 경우가 많이 생긴다.

자료구조란 데이터를 표현하고 관리하고 처리하기 위한 구조를 의미한다. 

그 중에서 stack과 queue 구조는 BFS, DFS 알고리즘 문제를 해결하기 위해 필요한 자료구조이다.

* stack 

stack은 가장 나중에 들어온 자료가 가장 먼저 처리되는 LIFO(Last-In-First-Out) 자료구조이다.

입구 = 출구 = 1 이다. 

 

stack 배열은 append 함수를 사용하여 insert(push) 하고 pop 함수를 사용하여 delete 한다.

* queue

큐(queue)는 선입선출, FIFO(First In First Out) 기반의 자료 구조이다.

queue는 입구와 출구가 나누어져 있다,

python에서 queue를 사용하기 위해서는 'from collections import deque'  구문을 꼭 사용해 주어야
deque()를 호출하여 queue 구조를 더 쉽게 사용할 수 있다.

 

stack에서 처럼 queue도 input 할때 append()를 사용한다.  delete 할때는 popleft()를 사용한다. pop()을 사용하면

선입 선출에 반하여 가장 마지막 원소를 delete 할 수 있다.

 

 

 

* popleft() 모듈은 사용자가 보기에는 오른쪽에서 pop되는거 같지만 컴퓨터의 입장에서는 왼쪽에서 pop하는 것이기 때문에 맞다.(mirror logic) 

-> 위처럼 생각하는 것 보다 queue == "선입선출" 이니까 popleft()하면 처음 들어온게 먼저 나간다! 

Comments