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

jaehyukchoi·2021년 2월 18일
1

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

스택을 이용해 푸는 문젠데 대부분 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 이하입니다.

입출력 예

pricesreturn
[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
profile
웹, AI 개발 공부.

1개의 댓글

comment-user-thumbnail
2021년 2월 21일

(~ ̄▽ ̄)~ 힘내라 힘

답글 달기