일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- javascript
- Algorithm
- python
- 자료구조
- dfs
- 자바의정석
- sql
- MVC
- 생성자
- data structure
- spring
- Queue
- JPA
- generic class
- 알고리즘
- 코테
- 공개키 암호화
- DB
- 암호학
- 가상컴퓨팅
- Java
- 클라우드 컴퓨팅
- cloud computing
- 코딩테스트
- JDBC
- jsp
- BFS
- dbms
- Stack
- 크루스칼
- Today
- Total
PLOD
[python] stack and queue 사용법 본문
코딩테스트를 준비하거나 프로젝트를 구현할 때 데이터를 탐색하는 과정은 필수불가결하다
탐색은 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정을 의미한다. 프로그래밍에서는
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()하면 처음 들어온게 먼저 나간다!
'개발 공부 > Python' 카테고리의 다른 글
[python] python 기본 문법 (0) | 2023.03.15 |
---|---|
[python] 리스트(List) (0) | 2023.01.31 |
[python] 배열의 원소들을 깔끔하게 출력하는 방법 (0) | 2022.11.18 |
[python] slicing(슬라이싱) 기본 (0) | 2022.11.01 |
python[파이썬] 가상 환경 설정하기(windows) (0) | 2022.08.01 |