프로그래머스 자료구조 강의와 각종 인터넷 자료를 참고하여 재구성한 내용입니다.

Stack

  • 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 자료구조
  • 후입선출(LIFO - Last In First Out)의 특징
  • Pushdown list라고도 한다

스택의 동작

  • S = Stack() : 초기 상태
  • S.push(A) : 데이터 원소 A를 스택에 추가
  • S.pop() : 스택의 가장 윗 데이터를 return하고 삭제
  • S.isEmpty() : 스택이 비었다면 1 반환, 그렇지 않다면 0 반환
  • S.peek() : 스택의 가장 윗 데이터를 제거하지 않고 반환

스택 구현

  • array를 이용하여 구현
    • python list와 method 이용
class ArrayStack:
	def __init__(self):
    	self.data = []

    def size(Self):
    	return len(self.data)

    def isEmpty(Self):
    	return self.size() == 0

	def push(self, item):
    	return self.data.append(item)

    def pop(self):
    	return self.data.pop()

    def peek(self):
    	return self.data[-1]

참조