AI/Python
[python] 스택, 큐
brave_sol
2024. 12. 23. 09:23
프로그래머스 알고리즘 KIT - 스택, 큐
1. 스택이란?
- 하나씩 쌓아져 마지막에 들어온거부터 제거! (후입선출, LIFO, Last In First Out)
↑ 쌓이는 순서 ↑ | 3 | 3 → 2 → 1 순으로 제거 |
2 | ||
1 |
※ 리스트로 구현
1) 마지막 요소 확인: 인덱싱 [-1]
answer = [1,2,3]
answer[-1] # 3
2) 빈 리스트의 마지막 요소 확인
answer = []
answer[-1] # error
answer[-1:] # []
3) 마지막 요소 제거: pop(제거한 값을 반환)
answer = [1,2,3]
answer.pop() # 3
answer.pop() # 2
answer.pop() # 1
answer.pop() # error
2. 큐란?
- 먼저 추가된 데이터부터 제거, 선입 선출(FIFO, First In First Out)
→ 쌓이는 순서 → | ||
1 | 2 | 3 |
1 → 2 → 3 순으로 제거 |
※ collections.deque() 로 구현
from collections import deque
queue = deque()
# Enqueue
queue.append(1)
queue.append(2)
queue.append(3)
# Dequeue
print(queue.popleft()) # 1
print(queue.popleft()) # 2
# Peek
print(queue[0]) # 3 (첫 번째 요소)
# Check if empty
print(len(queue) == 0) # False
반응형