문제 설명

초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.

제한사항

  • prices의 각 가격은 1 이상 10,000 이하인 자연수입니다.
  • prices의 길이는 2 이상 100,000 이하입니다.

입출력 예

prices return
[1, 2, 3, 2, 3] [4, 3, 1, 1, 0]

 


내 문제풀이

1. prices길이 -1 만큼 반복문을 돌면서, 현재 주식 가격과 이후의 주식 가격들을 비교한다. 이 때 이중 for 문을 사용한다.
2. 현재 - 이후 주식 가격을 한 번 비교할 때마다 count를 1씩 증가시킨다.
3. 어떤 이후 주식 가격이 현재 주식 가격보다 낮아진 경우 반복문을 중단시키고 answer에 count(가격이 떨어지지 않은 초)를 저장한다.
4. 가장 마지막의 주식 가격은 항상 count(가격이 떨어지지 않은 초)가 0이므로 마지막에 answer에 0을 추가한다.

내 코드 - 파이썬

def solution(prices):
    answer = []
    
    for cur_idx in range(0, len(prices)-1):
        count = 0
        for next_idx in range(cur_idx+1, len(prices)):
            count +=1 
            if prices[cur_idx] > prices[next_idx]:
                break
        answer.append(count)
    answer.append(0)
    
    return answer

+ Recent posts