알고리즘 / 기술면접 완전 정복 올인원 패키지 Online.
- 데이터를 제한적으로 접근할 수 있는 구조
- 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조
- 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조
Stack의 용어
- push(): 스택에 데이터를 넣는 기능
- pop(): 스택에서 데이터를 꺼내는 기능
# 재귀 함수
def recursive(data):
if data < 0:
print ("ended")
else:
print(data)
recursive(data - 1)
print("returned", data)
자료 구조 스택의 장단점
스택은 단순하고 빠른 성능을 위해 사용된다.
- 장점
1. 구조가 단순해 구현이 쉬움
2. 데이터 저장/읽기 속도가 빠름
- 단점
1. 데이터 최대 개수를 미리 정해야 한다.
2. 저장 공간의 낭비가 발생할 수 있다.
- 파이썬 리스트 기능에서 메소드 제공
data_stack = list()
data_stack.append(1)
data_stack.append(2)
data_stack #[1, 2]
data_stack.pop() #2
- 리스트 변수로 스택을 다루는 pop, push 기능 구현
stack_list = list()
def push(data):
stack_list.append(data)
def pop():
data = stack_list[-1]
del stack_list[-1]
return data
'Algorithm study' 카테고리의 다른 글
[백준 1260 / Python(파이썬)] DFS와 BFS (0) | 2022.10.04 |
---|---|
[백준 1197 / Python(파이썬)] 최소 스패닝 트리 (0) | 2022.07.29 |
[백준 1700 / 파이썬(Python)] 멀티탭 스케줄링 (0) | 2022.07.28 |
[백준 14179/파이썬(Python)] 빗물 (0) | 2022.07.18 |
Ch 05. 큐(Queue) (0) | 2022.03.24 |