취준/프로그래머스

[프로그래머스 Programmers][Python] 주식가격

puff 2020. 1. 17. 19:56

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

 

코딩테스트 연습 - 주식가격 | 프로그래머스

초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. prices의 길이는 2 이상 100,000 이하입니다. 입출력 예 prices return [1, 2, 3, 2, 3] [4, 3, 1, 1, 0] 입출력 예 설명 1초 시점의 ₩1은 끝까지 가격이 떨어지지

programmers.co.kr

이 문제는 앞에서부터 하나 하나 돌아가면서 끝까지 보면 된다. 

중요한건 "3초 시점의 ₩3은 1초뒤에 가격이 떨어집니다. 따라서 1초간 가격이 떨어지지 않은 것으로 봅니다."  조건

그래서 tmp+1을 for 문 앞에서 먼저 해준다.

 

아마 O(N^2). 근데 중간에 break 하는것도 있어서 실제로는 N^2까지는 안갈듯.

def solution(prices):
    answer = [0]*len(prices)
    for i in range(len(prices)-1):
        tmp = 0
        for j in range(i+1,len(prices)):
            tmp+=1
            if prices[i] > prices[j]:
                break
                
        answer[i] = tmp

    return answer