- 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42584

 

Lv2. 문제이고, 스스로 푼 문제다!

i번째 인덱스 이상인 수가 i + 1 ~ n -1 인덱스 사이에 총 몇 개 인지 세는 문제이다

 

문제 이해

시간 초과를 피하기 위해 deque를 이용해서 더 빠르게 계산할 수 있도록 했다

1. prices에서 원소(x)를 하나 pop()한 다음, 나머지 prices 원소들 중에 해당 원소 미만인 수가 있는지 확인하기 위해 for문을 돌린다.

2. 예제에서 멈출 때 마저도 시간을 센다고 했으므로 time += 1을 해주고 for문을 나온다

3. x 이상인 수가 나머지 prices에 있다면 계속해서 time += 1을 해준다

4. x에 해당하는 time을 answer에 추가해 준 후 반환한다 

 

- 정답 풀이 :

from collections import deque
def solution(prices):
    answer = []
    prices = deque(prices)
    
    while prices:
        x = prices.popleft()
        time = 0
        for price in prices:
            if x > price:
                time += 1
                break
            time += 1
            
        answer.append(time)
        
    return answer

 

+ Recent posts