나의 답
def solution(prices):
answer = [] * len(prices)
for i,value in enumerate(prices):
cnt = 0
for index in range(i+1,len(prices)):
if prices[index]>=prices[i]:
cnt+=1
else:
cnt+=1
break
answer.append(cnt)
return answer
이게 스택을 사용해서 푼 풀이는 아닌지라.....
다른 사람 답
def solution(prices):
stack = []
answer = [0] * len(prices)
for i in range(len(prices)):
if stack != []:
while stack != [] and stack[-1][1] > prices[i]:
past, _ = stack.pop()
answer[past] = i - past
stack.append([i, prices[i]])
for i, s in stack:
answer[i] = len(prices) - 1 - i
return answer
어렵다..........
비교를 시작부터 해주는게 아니라 숫자가 작아질때 그보다 큰걸 다 정리
정리 안된거는 마지막에 다 해줌
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 정렬 - K번째 (1) | 2024.01.30 |
---|---|
[프로그래머스] 스택/큐 - 프로세스 (1) | 2024.01.29 |
[프로그래머스] 스택/큐 - 올바른 괄호 (0) | 2024.01.27 |
[프로그래머스] 스택/큐 - 기능개발 (0) | 2024.01.26 |
[프로그래머스] 스택 - 같은 숫자는 싫어 (1) | 2024.01.26 |