[JavaScript] 프로그래머스 디스크 컨트롤러 LEVEL3

김예진·2020년 7월 10일
0

코딩 테스트

목록 보기
1/42

문제출처

function solution(jobs) {
    let answer = 0;
    let arr = [...jobs].sort((a, b) => a[1]===b[1] ? a[0]-b[0] : a[1]-b[1]);
    let ing = 0; // 현재까지 진행된 작업 시간
    
    while (arr.length !== 0) {
        for (let i=0; i<arr.length; i++) {
            if (arr[i][0] <= ing) {
                ing += arr[i][1];
                answer += ing - arr[i][0];
                arr.splice(i, 1);
                break;
            }
            // 수행할 작업이 없으면 시간++
            if (i === arr.length - 1) ing++;
        }
    }
    
    return Math.floor(answer / jobs.length);
}

0개의 댓글