기능개발 자바스크립트

HyosikPark·2020년 11월 21일
0

알고리즘

목록 보기
29/72
function solution(progresses, speeds) {
    
    let days = 0;
    let map = new Map(); // key: 경과일 values: 배포 갯수
    
    while(progresses.length) {
        if(progresses[0] >= 100) {  // 과정 완료
  	// 중복 key set이 불가능한 것을 이용하여 days가 같으면 value 증가.
          map.set(days,map.get(days) + 1 || 1); 
            progresses.shift(); 	// 완료된 과정 제거
            speeds.shift(); 		// 완료된 작업속도 제거
            continue; 		// 다음작업도 완료됐을 수 있기때문에 하루 경과 일단 무시
        }
        
        // 하루마다 각 작업의 스피드를 더해준다.
        for (let i = 0; i< progresses.length; i++) { 
            progresses[i] += speeds[i]
        }
        days++; // 하루 경과
    }
    return Array.from(map.values())
}

0개의 댓글