스택은 데이터를 임시 저장할 때 사용하는 자료구조로, 데이터의 입력과 출력 순서는
"LIFO (Last In First Out)" 구조
웹 브라우저의 뒤로 가기 버튼, 함수 호출 스택 등
push: 스택에 요소 추가
pop: 스택에서 가장 마지막에 추가된 요소 제거
peek (top): 스택에서 가장 마지막에 추가된 요소를 반환하지만 제거하지 않음
isEmpty: 스택이 비었는지 확인
size: 스택에 들어있는 요소의 개수 반환
배열이나 연결 리스트를 이용해 스택을 구현
class Stack:
def __init__(self):
self.stack = []
# push: 스택에 요소 추가
def push(self, item):
self.stack.append(item)
# pop: 스택에서 가장 마지막에 추가된 요소 제거
def pop(self):
if not self.isEmpty():
return self.stack.pop()
else:
return "Stack is empty"
# peek: 스택에서 가장 마지막에 추가된 요소를 반환하지만 제거하지 않음
def peek(self):
if not self.isEmpty():
return self.stack[-1]
else:
return "Stack is empty"
# isEmpty: 스택이 비었는지 확인
def isEmpty(self):
return len(self.stack) == 0
# size: 스택에 들어있는 요소의 개수 반환
def size(self):
return len(self.stack)
백준 10828 - 스택
백준 1874 - 스택 수열
백준 17298 - 오큰수