[프로그래머스] - 주식가격(파이썬)

이승수·2021년 8월 21일
0

문제설명

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

제한사항

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

입출력 예

pricesreturn
[1, 2, 3, 2, 3][4, 3, 1, 1, 0]

입출력 예 설명

  • 1초 시점의 ₩1은 끝까지 가격이 떨어지지 않았습니다.
  • 2초 시점의 ₩2은 끝까지 가격이 떨어지지 않았습니다.
  • 3초 시점의 ₩3은 1초뒤에 가격이 떨어집니다. 따라서 1초간 가격이 떨어지지 않은 것으로 봅니다.
  • 4초 시점의 ₩2은 1초간 가격이 떨어지지 않았습니다.
  • 5초 시점의 ₩3은 0초간 가격이 떨어지지 않았습니다.

def solution(prices):
    answer = []
    for i in range(len(prices)):            # 첫번째 인덱스 부터 
        cnt = 0                               # 몇 초
        for j in range(i+1, len(prices)): # i의 다음인 j부터
            if prices[i] > prices[j]:       # i번째가 j번째보다 크다면
                cnt += j - i                  # j-i초를 더하기
                break
        if cnt == 0:                          # 만약 큰게 없어서 i가 끝까지 갔다면
            cnt += len(prices) - i - 1        # i번째보다 다음것들 더하기
        answer.append(cnt)
    return answer

※ 설명
1 다음부터 2 3 2 3 → 4
2 다음부터 3 2 3 → 3
3 다음부터 2 → 1
2 다음부터 3 → 1
3 다음은 없으므로 → 0

profile
AI/Data Science

0개의 댓글

관련 채용 정보