[알고리즘] 스택에서 O(1) 안에 최소값 찾기
2019. 8. 27. 11:37
# 스택에서 min함수를 통해 O(1)로 최소값 찾기
class Stack:
def __init__(self):
self.container = list()
# 최소값을 담아두기 위한 컨테이너
self.min_container = list()
def push(self, data):
self.container.append(data)
# 최소값 갱신
if not self.min_container or data < self.min_container[-1]:
self.min_container.append(data)
def pop(self):
pop_data = self.container.pop()
# 삭제되는 데이터가 최소값이라면 최소값을 갱신
if pop_data == self.min_container[-1]:
self.min_container.pop()
return pop_data
def _min(self):
if not self.min_container:
return None
return self.min_container[-1]
'Today I Leaned' 카테고리의 다른 글
[네트워크] OSI 모델 기본개념 정리 (0) | 2019.09.05 |
---|---|
[네트워크] 연결형 프로토콜, 비연결형 프로토콜 (0) | 2019.09.03 |
[알고리즘] 연결리스트 안에서 중복 없애기, 뒤에서 k번째 요소 찾기 (0) | 2019.08.26 |
[알고리즘] 문자열 비교 (0) | 2019.08.25 |
[알고리즘] base case로부터 확장하기, 회문 순열 여부 확인하기 (0) | 2019.08.20 |