스택(Stack)

·2025년 2월 25일

algorithm

목록 보기
1/9
post-thumbnail

1. Stack

스택은 데이터를 임시 저장할 때 사용하는 자료구조로, 데이터의 입력과 출력 순서는
"LIFO (Last In First Out)" 구조

2. 스택의 활용 예

웹 브라우저의 뒤로 가기 버튼, 함수 호출 스택 등

3. 스택의 주요 연산

push: 스택에 요소 추가
pop: 스택에서 가장 마지막에 추가된 요소 제거
peek (top): 스택에서 가장 마지막에 추가된 요소를 반환하지만 제거하지 않음
isEmpty: 스택이 비었는지 확인
size: 스택에 들어있는 요소의 개수 반환

4. 스택 구현 예시

배열이나 연결 리스트를 이용해 스택을 구현

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)

5. 연습문제

백준 10828 - 스택
백준 1874 - 스택 수열
백준 17298 - 오큰수

profile
develog

0개의 댓글