티스토리 뷰

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
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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 31
글 보관함