본문으로 건너뛰기
실습하기

마지막에 들어간 데이터가 가장 먼저 나오는 스택(Stack)

스택은 마지막에 들어간 요소가 가장 먼저 나오는 자료구조로, 이를 후입선출(Last In First Out, LIFO) 방식이라고 합니다.

쉽게 말해 일상생활에서 책 더미에 책을 쌓고, 가장 위에 있는 책부터 꺼내는 것과 같은 원리입니다.

스택은 제한된 방식으로 데이터를 추가하거나 제거할 수 있는 자료구조로, 웹브라우저 방문 기록, 실행 취소(Undo) 등 프로그램의 다양한 곳에서 활용됩니다.


스택의 기본 연산

스택은 다음과 같은 주요 연산으로 구성됩니다.

  • Push: 스택의 맨 위에 새로운 요소를 추가하는 연산입니다.

  • Pop: 스택에서 가장 최근에 추가된 요소를 제거하고 그 값을 반환합니다.

  • Peek(또는 Top): 스택의 최상단 요소를 반환하지만 제거하지는 않습니다.

  • IsEmpty: 스택이 비어 있는지를 확인합니다.


스택은 어떻게 구현할 수 있나요?

파이썬에서는 리스트(list)를 사용해 간단한 스택을 구현할 수 있습니다.

스택 사용 예시
# 스택 초기화
stack = []

# 요소 추가 (Push)
stack.append(1)
stack.append(2)
stack.append(3)

# 최상단 요소 확인 (Peek)
print(stack[-1])
# 출력: 3

# 최상단 요소 제거 (Pop)
print(stack.pop())
# 출력: 3
print(stack.pop())
# 출력: 2

# 스택이 비어 있는지 확인 (IsEmpty)
print(len(stack) == 0)
# 출력: False

클래스(Class)를 활용해 보다 세밀하게 스택을 구현한 예제는 오른쪽 코드 에디터에서 확인할 수 있습니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!