초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.
테스트 케이스
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초간 가격이 떨어지지 않았습니다.
※ 공지 - 2019년 2월 28일 지문이 리뉴얼되었습니다.
문제 풀이는 제 생각과 검색한 정보를 바탕으로 작성했습니다.
def solution(prices):
answer = [0] * len(prices) # 1
for i in range(len(prices)):
for j in range(i + 1, len(prices)): # 2
answer[i] += 1 # 3
if prices[i] > prices[j]: # 4
break
return answer
prices
길이 만큼 선언 후 0으로 초기화prices[i]
의 값과 그 다음 값의 기준 j
price
기준 비교할 다음 price
가 있다면, 가격이 떨어지지 않은 기간은 최소 1은 보장되기 때문에 매 loop마다 +1현재 위치에 들어왔다는 뜻은
0 <= i < len(answer)
이란 뜻으로 마지막 배열이 아니라는 의미로, 마지막 배열은 초기값 0으로 리턴됨
price
의 생존 기간 카운터 종료출처: