[WEEK 02] 알고리즘 - 스택/큐

스택

스택(Stack)은 데이터를 임시 저장할 때 사용하는 자료구조로, 데이터의 입력과 출력 순서는 후입선출(LIFO: Last In First Out) 방식이다.

스택에 데이터를 넣는 작업을 푸시라 하고, 스택에서 데이터를 꺼내는 작업을 팝이라 한다.

데이터를 푸시/팝하는 윗부분을 꼭대기, 아랫부분을 바닥이라 하고, 데이터를 넣고 꺼내는 작업을 맨 위부터 수행한다.

스택 구현하기

stack = []

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])
# 최하단 원소부터 출력
print(stack)

큐는 가장 먼저 넣은 데이터를 가장 먼저 꺼내는 선입선출(FIFO: First In First Out) 방식의 자료구조

큐에 데이터를 추가하는 작업을 인큐, 데이터를 꺼내는 작업을 디큐라고 한다.

데이터를 꺼내는 쪽을 프런트, 데이터를 넣는 쪽을 리어하고 한다.

큐 구현하기

from collections import deque

# 큐를 구현하기 위해 deque() 라이브러리 사용
queue = deque()

queue.append(5)
queue.append(2)
queue.append(3)
queue.append(7)
queue.popleft()
queue.append(1)
queue.append(4)
queue.popleft()

# 먼저 들어온 순서대로 출력
print(queue)
# 역순으로 바꾸기
queue.reverse()
# 나중에 들어온 원소부터 출력
print(queue)

좋은 웹페이지 즐겨찾기