문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42584
코딩테스트 연습 - 주식가격
초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00
programmers.co.kr
풀이과정 : 먼저 시간복잡도가 O(n^2)로 보이는데, 이것보다 더 효율적으로 풀어야한다고
생각하여 계속해서 다른방법을 찾다가 풀이과정을 보았고, 그냥 원래 생각했던 대로
풀면 되는것이었다. 큐, 덱을 이용해서 풀어도 되지만 그냥 반복문 두개를 만들고
i, j 중 j를 이동시키며 시간을 i마다 계산해서 answer리스트에 넣어줘도 된다.
from collections import deque
def solution(prices):
price_queue = deque(prices)
answer = []
while price_queue:
price = price_queue.popleft()
time = 0
for queue in price_queue:
time += 1
if queue < price:
break
answer.append(time)
return answer
후기 : 더 스마트한 풀이가 있을 거라 생각했는데, 원초적으로 푼것 같아 아쉽다.
'Coding > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 전화번호 목록 (Lv.2) - (python 파이썬) (0) | 2025.03.26 |
---|---|
[프로그래머스] 다리를 지나는 트럭 (Lv.2) - (python 파이썬) (0) | 2025.03.26 |
[프로그래머스] 같은 숫자는 싫어(Lv.1) - (python 파이썬) (0) | 2025.03.20 |
[프로그래머스] 기능개발(Lv.2) - (python 파이썬) (0) | 2025.03.20 |
[프로그래머스] 더 맵게 - (python 파이썬) (0) | 2022.03.07 |