본문 바로가기
  • 문과생의 백엔드 개발자 성장기
|Algorithm

[1주차]_프로그래머스 Lv2 주식가격(스택/큐).PYTHON

by 케리's 2021. 5. 22.

주식가격

 

 

문제 설명

 

초 단위로 기록된 주식가격이 담긴 배열 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초간 가격이 떨어지지 않았습니다.

 

 

 

✔ 나의 문제 설명

 

입출력 예

 

 prices 1[1]초 시점 → 끝까지 가격이 떨어지지 않았으므로 [2, 3, 2, 3] (4초) 지속하며 return ['4'] 출력

 prices 2[2]초 시점 → 끝까지 가격이 떨어지지 않았으므로 [3, 2, 3] (3초) 지속하며 return ['3'] 출력

 prices 3[3]초 시점 → 1초 뒤에  가격이 떨어지므로 (1초) return ['1'] 출력

 prices 4[2]초 시점 → 1초간 간격이 떨어지지 않았으므로 [3] 지속하며 (1초) return ['1'] 출력

 prices 5[3]초 시점 → 끝까지 가격이 떨어지지 않았지만 끝났으므로 return ['0'] 출력

 

 

😎 나의 풀이

 

def solution(prices): # price : 초단위로 기록된 주식가격이 담긴 배열
    answer = [] # 가격이 떨어지지 않은 기간
    for i in range(len(prices)): # len(price) 길이만큼 반복하자
        count = 0 
        for j in range(i+1,len(prices)): # i+1 부터 len(prices) 길이만큼 반복
            count += 1 # 기간 카운팅을 하자
            if prices[i] > prices[j]: # price[i] 가 price[j]보다 클 경우
                break
        answer.append(count)

    return answer

 

 - len(price) : prices의 크기 

 

✔ 스택/큐 이용 방법은 아직 모르겠음 

댓글