✨ 공부 기록/알고리즘

[프로그래머스 lv 2] 기능개발 (스택/큐)

LaonMoon 2025. 2. 28. 11:19

아이디어 : 동시에 일단 개발을 시작한 후에 배포 순서대로 차례로 고려하면서 일수를 계산하는 것이므로, 각각 개발에 걸리는 시간을 먼저 파악해야 할 것 같다.

 

import math

def solution(progresses, speeds):
    dates = []
    answer = []
    for i in range(len(progresses)):
        date = (100-progresses[i])/speeds[i]
        dates.append(math.ceil(date))
    
    completed = [False]*len(dates)
    flag = 0
    count = 0
    for i in range(len(dates)):
        if flag ==0:
            count=1
            flag = dates[i]
            completed[i]==True
        elif dates[i]-flag <=0:
            completed[i]==True
            count+=1
        elif dates[i]-flag>0:
            answer.append(count)
            count=1
            dates = [x-flag for x in dates]
            flag = dates[i]
    answer.append(count)
    return answer