[プログラマー/LV 2]機能の開発(JavaScript)


機能開発


問題の説明


プログラマチームは機能強化を実行しています.各機能は、進捗が100%の場合にサービスに反映されます.
また、各機能の開発速度が異なるため、後の機能は前の機能の開発より先に、後の機能は前の機能の導入時に一緒に導入される可能性があります.
まず、ソリューション関数を完了し、特定の整数配列の進捗状況(必要に応じて配置される順序)と整数配列速度(タスクごとの開発速度)のときに、各配置にどれだけの機能があるかを返します.

せいげんじょうけん


•タスクの数(進捗、速度配列の長さ)は100を超えない.
•作業の進捗は100未満です.
•動作速度は100を超えない.
•導入は、1日に1回しか実行できず、1日の終了時に完了すると仮定します.たとえば、開発の進捗状況が95%のタスクの速度が1日4%の場合、導入は2日後に完了します.

コード#コード#

function solution(progresses, speeds) {
    var answer = [];
    let progress = []
    for(p of progresses){
        p = 100 - p
        progress.push(p)
    }
    
    while(progress.length){
        let days = 0
        if(progress[0] % speeds[0] == 0){
            days = parseInt(progress[0] / speeds[0])            
        } else{
            days = parseInt(progress[0] / speeds[0] + 1)
        }

        for(let i=0;i<progress.length;i++){
            progress[i] -= days * speeds[i]
        }
        let count = 0
        let i = 0
        while(true){
            
            if (progress[i] <= 0){
                count += 1
                progress.shift()
                speeds.shift()
            }else{
                break
            }
        }
        answer.push(count)
        
        
    }  
    return answer;
    
}