개발/algorithm

[프로그래머스][level2] 주식가격 - python

zzi_on2 2022. 2. 3. 16:43

문제 링크

https://programmers.co.kr/learn/courses/30/lessons/42584

 

코딩테스트 연습 - 주식가격

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

programmers.co.kr

풀이

- 처음엔 문제 이해를 못해서 질문하기 읽고 풀었다

- 주식 가격이 떨어지지 않고 유지된 시간을 구하는 문제 

- 따라서 해당 시간 뒤에 주식 가격을 해당 가격와 비교하여 떨어졌으면 종료, 같거나 증가했으면 유지된 시간 +1 

def solution(prices):
  # 유지된 시간 
  answer = [0] * len(prices)

  for i in range(len(prices)):
    for j in range(i, len(prices)):
      # 같거나 증가했으면 +1 
      if prices[i] <= prices[j]:
        answer[i] += 1 
      # 떨어졌으면 종료 
      else:
        answer[i] +=1 
        break
    
  return answer

- 2022.03.28 다시 품 

def solution(prices):
    answer = []
    
    for i in range(len(prices)-1):
        num = prices[i]
        cnt = 0
        for j in range(i+1, len(prices)):
        	# 시간 증가 
            cnt += 1 
            # 주식이 떨어졌으면 종료 
            if prices[j] < num :
                break 
		# 유지된 시간 추가 
        answer.append(cnt)
     
    # 마지막 주식은 항상 0 
    answer.append(0)          
    return answer