[프로그래머스/파이썬] 스택/큐 기능개발

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


알고리즘 분류

  • 스택/큐

문제풀이

입출력 예 #1.
몇 일 후에 배포되는지 저장한 days리스트는 (100-93)/1, (100-30)/30 ... 를 반올림한 값을 가진다.

이후 배포는 먼저 배포되어야 하는 순서를 따라야 한다.
따라서 days=[7,3,9]에서 7>3일 경우 3을 7로 바꿔주어 [7,7,9] -> 7일에 2개, 9일에 1개를 배포하게 된다.

Counter 클래스로 값에 대해 리스트로 반환한다.

입출력 예 #2.
days=[5,10,1,1,20,1]
->[5,10,5,5,20,5]
->[5,10,10,10,20,10]
->[5,10,10,10,20,20]
5일 1개, 10일 3개, 20일 2개

소스코드

def solution(progresses, speeds):
    import math
    from collections import Counter

    days=[]
    for i in range(len(progresses)):
        days.append(math.ceil((100-progresses[i])/speeds[i]))

    for i in range(len(days)):
        for j in range(i+1, len(days)):
            if days[i]>days[j]:
                days[j]=days[i]

    return list(Counter(days).values())

좋은 웹페이지 즐겨찾기