스택을 이용해 푸는 문젠데 대부분 2중 for문으로 풂. 처음에는 for i in range(n) ... 이 형태 최대한 안 쓰려고 enumerate쓰고
비교되는 배열을 for문 안에 넣어서 매번 비교할 때마다 리스트 슬라이싱 함. => 시간 초과
그냥 range(len()) 쓰고 불필요한 리스트 슬라이싱 없애니 효율성 통과는 함.
range(len()) 이랑 enumerate() 속도 차이 찾아보니 큰 차이는 없지만 range가 좀 더 빠름. 근데 속도 차이 별로 없고 enumerate가 가독성 더 좋아서 웬만하면 enumerate로 하는 걸로.
초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.
- prices의 각 가격은 1 이상 10,000 이하인 자연수입니다.
- prices의 길이는 2 이상 100,000 이하입니다.
prices | return |
---|---|
[1, 2, 3, 2, 3] | [4, 3, 1, 1, 0] |
def solution(prices):
n = len(prices)
answer = [0] * n
for i in range(n):
for j in range(i+1, n):
if prices[i] <= prices[j]:
answer[i] += 1
else:
answer[i] += 1
break
return answer
(~ ̄▽ ̄)~ 힘내라 힘