반응형
def solution(p):
a = []
n=len(p)
for i in range(n):
cnt=0
for j in range(i+1, n):
cnt+=1
if p[i] > p[j] :
break
a.append(cnt)
return a
- 간단하게 2중 for문을 사용하여 비교하며 최초 가격이 떨어지는 시점에서의 지난 초를 반환한다.
def solution(prices):
n = len(prices)
answer = [0] * n
stack = []
for i, price in enumerate(prices):
while stack and prices[stack[-1]] > price:
j = stack.pop()
answer[j] = i - j
stack.append(i)
while stack:
j = stack.pop()
answer[j] = n - 1 - j
return answer
- 스택을 사용한 방법
반응형
'코딩 테스트 > Python' 카테고리의 다른 글
| 문제14 [스택] 표 편집 (0) | 2025.12.11 |
|---|---|
| 문제13 [스택] 크레인 인형 뽑기 게임 (0) | 2025.12.11 |
| 문제11 [스택] 짝지어 제거하기 (0) | 2025.12.04 |
| 문제10 [스택] 괄호 회전하기 (0) | 2025.12.01 |
| 문제09 [스택] 10진수를 2진수로 변환하기 (0) | 2025.12.01 |