스택(stack)
스택 자료구조
- 먼저 들어 온 데이터가 나중에 나가는 형식(선입후출)의 자료구조
스택 구현 예제
stack = []
# 삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제()
stack.append(5)
stack.append(2)
stack.append(3)
stack.append(7)
stack.pop()
stack.append(1)
stack.append(4)
stack.pop()
# 최상단 원소부터 출력
print(stack[::-1]) # 실행 결과 [1, 3, 2, 5]
# 최하단 원소부터 출력
print(stack) # 실행 결과 [5, 2, 3, 1]
큐(queue)
큐 자료구조
- 먼저 들어 온 데이터가 먼저 나가는 형식(선입선출)의 자료구조
- deque 라이브러리를 이용하여 구현 가능 (리스트만으로도 구현은 가능하지만 비효율적임)
큐 구현 예제
from collections import deque
# 큐(Queue) 구현을 위해 deque 라이브러리 사용
queue = deque()
# 삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제()
queue.append(5)
queue.append(2)
queue.append(3)
queue.append(7)
queue.popleft()
queue.append(1)
queue.append(4)
queue.popleft()
# 먼저 들어온 순서대로 출력
print(queue) #실행 결과 deque([3, 7, 1, 4])
queue.reverse() # 역순으로 바꾸기
# 나중에 들어온 원소부터 출력
print(queue) #실행 결과 deque([4, 1, 7, 3)
출저: [큐레이팅# 플러스]최적의 코딩을 결정하는 기본 알고리즘