문제 설명

초 단위로 기록된 주식가격이 담긴 배열 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은 끝까지 가격이 떨어지지 않았습니다.
2초 시점의 ₩2은 끝까지 가격이 떨어지지 않았습니다.
3초 시점의 ₩3은 1초뒤에 가격이 떨어집니다. 따라서 1초간 가격이 떨어지지 않은 것으로 봅니다.
4초 시점의 ₩2은 1초간 가격이 떨어지지 않았습니다.
5초 시점의 ₩3은 0초간 가격이 떨어지지 않았습니다.

Idea

2중 포문을 만들고, 중첩되어있는 포문은 i+1 부터 시작해서 끝까지 돌면 간단하게 풀릴것으로 생각했다.

Code

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

    return answer
def solution(prices):
    answer = [0] * len(prices)
    # answer = list()
    for i in range(len(prices)):
        # count = 0
        for j in range(i+1, len(prices)):
            answer[i] += 1          
            # count += 1
            if prices[j] < prices[i]:
                break
        # answer.append(count)

    return answer

Explain

위의 코드는 answer에 직접 값을 1씩 증가해주는 것이고,
아래의 코드는 count에 누적해 append하는방법인데,
append가 더 빨랐다!!

댓글남기기