[프로그래머스 Lv2] 주식가격(python)

이진규·2022년 1월 25일
1

프로그래머스(PYTHON)

목록 보기
27/64

문제

https://programmers.co.kr/learn/courses/30/lessons/42584

나의 코드 (답안참조)

"""
1. 아이디어
큐에서 가격을 뽑아 낸 후 남아있는 가격들을 순서대로 비교해주면 된다.

2. 시간복잡도
o(n^2)인데 중간에 break되는 부분이 있어 n^2보단 빠를 것이다.
그래서 통과되지 않았을까?..
"""

from collections import deque

def solution(prices):
    
    answer = []
    queue = deque(prices)
    
    while queue:
        q = queue.popleft()
        period = 0
        
        for x in queue:
            
            if q <= x:
                period += 1
            else:
                period += 1 # 3초 시점 때문에 이 부분을 추가해줘야 한다.
                break
        
        answer.append(period)
    
    return answer
    

추가사항

위의 for x in queue: 부분에 period += 1 부분이 겹치므로 다음과 같이 작성해도 된다.

for x in queue:
    period += 1

    if q > x:
        break

느낀점

큐를 활용할 수 있으면 풀 수 있는 간단한 문제이다.

profile
항상 궁금해하고 공부하고 기록하자.

0개의 댓글