프로그래머스_주식가격_python
2021. 7. 27. 00:52ㆍ코딩테스트
반응형
https://programmers.co.kr/learn/courses/30/lessons/42584
가격이 떨어지지 않은 기간은 몇 초인지를 return
def solution(prices):
length = len(prices)
answer = [0 for _ in range(length)]
for i in range(length):
for j in range(i+1, length):
if prices[j]<prices[i]:
answer[i] = j-i
break
answer[i] = length-i-1
return answer
[내코드]
효율성에서 계속 실패해서 겨우 겨우 통과했다..
for문을 원래 외부에 빼서 따로 함수 호출하는 식으로 했는데, 매번 len(arr)를 하게되어 시간이 오래걸림.
한가지 알게된 것이 있다면,
for i, a in enumarate(arr) 보다는 for i in range(len(arr))가 쪼금더 낫다..!
from collections import deque
def solution(prices):
answer = []
prices = deque(prices)
while prices:
c = prices.popleft()
count = 0
for i in prices:
if c > i:
count += 1
break
count += 1
answer.append(count)
return answer
[다른사람코드]
deque사용. deque의 pop을 사용하면 리스트가 자동으로 줄어들어 따로 index 고려를 안해도 됨.
반응형
'코딩테스트' 카테고리의 다른 글
프로그래머스_더 맵게_python (0) | 2021.07.29 |
---|---|
프로그래머스_다리를 지나는 트럭_python (0) | 2021.07.29 |
프로그래머스_프린터_python (0) | 2021.07.25 |
프로그래머스_기능개발_python (0) | 2021.07.25 |
프로그래머스_베스트앨범_python (0) | 2021.07.21 |