코딩테스트 연습 - 주식가격 | 프로그래머스 스쿨 (programmers.co.kr)
나의 풀이
.
모범 답안
def solution(prices):
length = len(prices)
# 모든 가격 max값으로 세팅
result = [ i for i in range (length - 1, -1, -1)]
# 주식 가격이 떨어지는 경우를 찾아 수정
stack = [0]
for i in range (1, length):
while stack and prices[stack[-1]] > prices[i]:
j = stack.pop()
result[j] = i - j
stack.append(i)
return result
1. 모든 가격 max값으로 세팅: result=[4,3,2,1,0]
2. 가격이 떨어지는 경우: 초깃값 0부터 시작해 1부터 prices의 길이값을 stack에 넣고 stack[-1] 값보다 prices[i]의 값이 더 작을 때를 찾음
'코딩테스트 > programmers (python)' 카테고리의 다른 글
Programmers / 2단계 / 땅따먹기 / python (0) | 2024.02.21 |
---|---|
Programmers / 2단계 / 뒤에 있는 큰 수 찾기 / python (0) | 2024.02.21 |
Programmers / 3단계 / [DFS/BFS] 네트워크 / python (0) | 2024.02.19 |
Programmers / 2단계 / [힙(Heap)] 더 맵게 / python / (1) | 2024.02.18 |
Programmers / 2단계 / 깊이/너비 우선 탐색(DFS/BFS) / python / (1) | 2024.02.17 |