
def solution(prices):
n = len(prices)
result = [0] * n
stack = [] # 아직 기간이 확정되지 않은 인덱스들
for i, price in enumerate(prices):
# 가격이 떨어졌을 때 이전 가격들의 기간을 확정
while stack and prices[stack[-1]] > price:
j = stack.pop()
result[j] = i - j
stack.append(i)
# 끝까지 안 떨어진 경우 처리
while stack:
j = stack.pop()
result[j] = n - 1 - j
return result'코딩 테스트 > 프로그래머스 level2' 카테고리의 다른 글
| 징검다리 건너기(이진 탐색 예제) (0) | 2025.10.01 |
|---|---|
| 보석 쇼핑(투 카운터 예제) (0) | 2025.10.01 |
| 프린터 (0) | 2022.09.12 |
| k진수에서 소수 개수 구하기 (0) | 2022.09.12 |
| [1차] 뉴스 클러스터링 (0) | 2022.09.12 |