Kimuksung
Kimuksung 안녕하세요. 분산처리에 관심이 많은 생각하는 주니어 Data Enginner입니다.

프로그래머스 - 주식 가격

https://school.programmers.co.kr/learn/courses/30/lessons/42584

  • O(N^2) 시 시간 초과
  • O(N)으로 풀이 생각
  • 현재 기준으로 떨어진 적이 없다면 전체 크기-현재 index
  • 떨어진 적이 존재한다면, 뒤에 나타난 주식에서 앞에 데이터들을 처리함으로써 떨어진 index-앞 주식 index를 갱신시켜 한번만 순회
1
2
3
4
5
6
7
8
9
10
11
12
def solution(prices):
    n = len(prices)
    answer = [n-i for i in range(1,n+1)]
    
    que = []
    for i, price in enumerate(prices):
        while que and que[-1][0] > price:
            _, index = que.pop()
            answer[index]= i-index
        que.append((price, i))
        
    return answer