프로그래머스 자료구조 강의와 각종 인터넷 자료를 참고하여 재구성한 내용입니다.
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]
참조
- 프로그래머스 ‘어서와! 자료구조와 알고리즘은 처음이지?’