[programmers] 주식가격
문제 설명
초 단위로 기록된 주식가격이 담긴 배열 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초간 가격이 떨어지지 않았습니다.
Idea
2중 포문을 만들고, 중첩되어있는 포문은 i+1 부터 시작해서 끝까지 돌면 간단하게 풀릴것으로 생각했다.
Code
def solution(prices):
answer = [0] * len(prices)
for i in range(len(prices)):
for j in range(i+1, len(prices)):
answer[i] += 1
if prices[j] < prices[i]:
break
return answer
def solution(prices):
answer = [0] * len(prices)
# answer = list()
for i in range(len(prices)):
# count = 0
for j in range(i+1, len(prices)):
answer[i] += 1
# count += 1
if prices[j] < prices[i]:
break
# answer.append(count)
return answer
Explain
위의 코드는 answer에 직접 값을 1씩 증가해주는 것이고,
아래의 코드는 count에 누적해 append하는방법인데,
append가 더 빨랐다!!
댓글남기기