Algorithm/프로그래머스

[알고리즘 문제 풀이] - 주식 가격 (프로그래머스)

Jesse 2021. 1. 6. 01:49

오늘 풀어본 문제의 제목은 주식 가격 입니다.

 

그럼 문제 설명을 볼까요?

 

더보기

<문제 설명>

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

<제한 사항>

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

<입출력 예>

설명이 굉장히 짧네요...

 

초단위로 주식의 가격이 기록된 배열이 주어집니다.

 

각각 가격이 떨어지지 않은 기간이 몇초인지 구하는 문제네요.

 

저는 nested loop을 이용하였습니다.

 

바깥 loop은 매초마다 다른 가격들을 순서대로 선택합니다.

 

첫번째 가격부터 보면 1->2->3->2->3 단 한번도 1보다 낮았던 적이 없네요.

 

4초동안 가격이 내려간적이 없기 때문에 값이 4가 나옵니다.

 

그럼 두번째 가격은 2에서 시작해서 2->3->2->3 역시 3초동안

 

시작 값인 2아래로 떨어진적이 없네요. 그래서 3초가 됩니다.

 

세번째 가격인 3은 3->2 3의 가격에서 1초뒤에 바로 2로 떨어집니다.

 

그래서 값이 1초네요.

 

주식의 값들을 비교하는 부분은 if를 쓰고 시간을 절약하기 위해 break하도록 했습니다.

 

def solution(prices):
    answer = []
    time = 0
    
    for i in range(len(prices)):	#주식의 가격들
        time = 0
        for j in range(i+1,len(prices)):	#이후에 주식 가격 변동
            time += 1
            if prices[j] < prices[i]:	#가격이 떨어지는 부분을 발견 했을때
                break
        answer.append(time)

    return answer

 

채점해본 결과는....

 

 

정확성 테스트 후에 효율성 테스트까지 있었네요 ㅎㅎ

 

다행히 모두 통과 되었습니다.