개요

stack이라는 단어처럼 쌓는 방식으로 자료를 저장합니다. 새로운 원소의 삽입은 스택의 맨 위에 해당 원소를 쌓는 것이고, 제거는 맨 위에서 하나 제거하는 것입니다. 그래서 나중에 들어온 원소가 먼저 나간다는 특징을 가집니다. 후입선출(LIFO: Last In, First Out)이라고도 합니다.

맨 위에 있는 원소를 top이라고 합니다. 맨 위에 원소를 쌓는 것을 push, 제거하는 것을 pop이라고 합니다. 연결 리스트나 배열로 구현한 경우 top에 대한 삽입/제거/조회의 시간복잡도는 입니다.

구현

언어별로 이미 구현된 자료 구조를 사용하거나, 배열을 사용하면 됩니다.

  • Python: list
  • C++: std::stack
  • Java: java.util.Stack

문제