Python Stack 구현
C++에서는 STL (Standard Template Library)에서 Stack 컨테이너를 지원해주지만
Python에서는 따로 제공해주지 않습니다.
List로 간단히 Stack에서 필요한 연산을 구현할 수 있기 때문인데요.
- 스택 (Stack)은 LIFO 구조입니다.
- List에서 관련 함수가 많기 때문에 간단하게 Class를 이용해서 구현하여 사용하거나 아니면 List 자체로 그냥 사용하기도 합니다.
- Stack에서 많이 활용되는 5가지 함수에 대해서 직접 구현해봅시다.
- Stack은 괄호, 접시, 짝짓기 등의 문제에 사용됩니다.
Top
top은 제일 마지막에 있는 원소를 반환해주면 됩니다. List의 가장 마지막 원소는 -1 Index를 통해 접근할 수 있습니다.
1 | stack[-1] |
Push
push는 제일 마지막 위치에 원소를 추가해주면 됩니다. List의 append 함수를 이용해 추가합니다.
1 | stack.append(num) |
Pop
pop은 제일 마지막 원소를 반환해주면 됩니다. List의 pop 함수를 이용할 수 있습니다.
1 | stack.pop() |
Size
size는 Stack의 현재 사이즈를 반환합니다. List의 len 함수를 이용하면 됩니다.
1 | len(stack) |
Empty
empty는 stack이 비었는지 판단합니다. List의 len과 0을 비교해주면됩니다.
1 | len(stack) == 0 |
Class로 직접 구현하면 아래와 같습니다.
1 | class Stack(): |