https://programmers.co.kr/learn/courses/30/lessons/42627

아래는 내가 푼 코드인 힙이랑 우선순위 큐니 뭐니 걍 정신 사나운듯 담 문제는 프붕이가 풀자고 했던 네트워크나 풀어야지

function solution(jobs) {
    let result = 0;
    const length = jobs.length;
    jobs.sort((a, b) => { // task 정렬 요청 시간, 작업시간
        if (a[0] < b[0]) {
            return -1;
        } else if (a[0] === b[0]) {
            return a[1] < b[1] ?
                -1 :
                1;
        }
        return 1;
    });
  
    const queue = [];
    let time = jobs[0][0];
    while (jobs.length > 0) { // jobs을 모두 비울때 까지 반복
        queue.push(jobs.shift());
        
        while (queue.length > 0) {// queue를 모두 비울때까지 반복
            while (jobs.length > 0 && time >= jobs[0][0]) { // 경쟁 task 필터링
                queue.push(jobs.shift());
            }
            queue.sort((a, b) => a[1] - b[1]); // task 정렬 소요시간
  
            const [start, end] = queue.shift();
            if (time >= start) { // task 응답시간 및 총 소요시간 계산
                time === start ?
                    result += end :
                    result += time - start + end;
                time += end;
            } else {
                result += end;
                time = start + end;
            }
        }
    }
  
    return parseInt(result / length); // 평균 응답 시간 계산
}