Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 저장소 복제
- 프로그래머스
- 저장소 이전
- 서버 배포
- JPQL
- Servlet
- MySQL
- 파이썬
- 두수의 합 자바
- Chat GPT
- 페이징 정렬
- 우분투
- 넘파이
- JDBC
- MVC
- 자바
- api 개발
- HttpServletResponse
- swap 메모리
- 비밀번호 재설정 API
- 스프링부트 OpenAI API
- Git
- springboot
- 스프링 이메일 전송
- Json 객체
- github 복제
- git 충돌 해결
- JPA
- 값 타입
- jar빌드
Archives
- Today
- Total
현의 개발 블로그
스택, 큐, 덱 파이썬으로 구현 본문
스택
후입선출(Last In First Out) 구조이다.
삽입과 삭제하는 방향이 동일하다
파이썬에서 스택은 리스트를 활용한다.
append()는 가장 뒤에 데이터를 삽입하고, pop()은 가장 뒤의 데이터를 꺼낸다.
stack = []
# 삽입(1) - 삽입(2) - 삽입(3) - 삭제(3)
stack.append(1)
stack.append(2)
stack.append(3) #뒤쪽에 원소 삽입하기
stack.pop() # 맨 위(맨 뒤)의 원소 꺼내기
print(stack[len(stack)-1] # 맨 위의 원소 출력하기 peek()
큐
선입선출(First In First Out) 구조이다.
삽입과 삭제하는 방향이 다르다.
스택과 달리 공정한 자료구조이다.
큐는 구현을 위해 덱 라이브러리를 사용한다.
먼저 들어온 원소, 즉 맨 왼쪽의 원소부터 삭제하므로 popleft()를 사용한다.
from collections import deque
queue = duque()
# 삽입(1) - 삽입(2) - 삭제(1)
queue.append(1)
queue.apppend(2)
queue.popleft()
덱
스택, 큐와 달리 모든 방향에서 삽입과 삭제가 가능하다
왼쪽 삽입은 appendleft(), 오른쪽 삽입은 append()를 사용한다.
왼쪽 삭제는 popleft(), 오른쪽 삭제는 pop()을 사용한다.
from collections import dequeue
deq = dequeue()
deq.appendleft(1) # ([1])
deq.appendleft(2) # ([2, 1])
deq.append(3) # ([2, 1, 3])
deq.popleft() # ([1, 3])
deq.appendleft(4) # ([4, 1, 3])
deq.pop() # ([4, 1])
'프로그래밍 언어 > 파이썬' 카테고리의 다른 글
백준 체크판 다시 칠하기 파이썬 (1) | 2023.05.12 |
---|---|
백준 2667 단지번호 붙이기 파이썬 (0) | 2023.05.09 |
DFS, BFS (0) | 2023.05.08 |
재귀 함수 (0) | 2023.05.07 |
백준 1021 회전하는 큐 파이썬 (0) | 2023.05.06 |
Comments