[프로그래머스] 기능개발
// https://school.programmers.co.kr/learn/courses/30/lessons/42586?language=javascript
function solution(progresses, speeds) {
    var answer = [];
    
    // 소요되는 작업일수로 변경    
    const days = progresses.slice(0).reduce((acc,cur,index,array)=>{
        let count = 0;
        
        for(cur; cur < 100; speeds[index] ){
            count ++
            cur = cur + speeds[index]
        }
        return acc = [...acc, count]
    },[])
   

    // 배열 순회 마지막 인덱스와 배포갯수 설정(기본 자기자신 1)    
    let lastIndex = 0;
    let deploy = 1;
    
    for(lastIndex; lastIndex <= days.length; lastIndex++){
           
        for(let i = lastIndex + 1; i <= days.length; i++ ){
    // 이중 반복문으로 현재 선택된 값과 앞뒤로 비교
        
            if(days[lastIndex] >= days[i]){
    // 기준값 보다 작으면 배포 숫자에 더한다
                deploy ++
            } else {
    // 기준값 보다 크다면 배포이므로 answer에 여태 쌓인 배포숫자를 push한다.
    // 이미 배포되어 빠진 기능이 있기 때문에 lastIndex에 현재 보고 있는 index -1을 재선언
    // deploy 1로 재선언    
    // 뒤에 있는 index는 순회할 필요 없어졌기 때문에 break로 탈출                
                lastIndex = i-1
                answer.push(deploy)
                deploy = 1
                break;                
            }
        }
        
    }
   
    
    return answer;
}