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():  |