사내 추론 서버에는 GPU가 한 장뿐이라 작업을 한 번에 하나씩만 처리합니다.
i번 작업은 jobs[i] = [요청 시각, 처리 시간] 형태로 주어집니다.
스케줄러는 다음 규칙으로 동작합니다.
어떤 작업의 대기 시간 은 처리 시작 시각 - 요청 시각입니다.
모든 작업의 대기 시간 중 최댓값 을 반환하는 solution(jobs) 함수를 작성하세요.
jobs=[[0,3],[1,9],[2,6]] → 8
0번: 시각 0 시작(대기 0), 시각 3 종료
대기 중 [1번(처리 9), 2번(처리 6)] → 처리 시간 짧은 2번: 시각 3 시작(대기 1), 시각 9 종료
1번: 시각 9 시작(대기 8) → 최대 대기 8
jobs=[[0,10],[2,5],[3,5]] → 12
0번: 시각 0 시작, 시각 10 종료
1번·2번 처리 시간이 같으므로 요청이 빠른 1번: 시각 10 시작(대기 8), 시각 15 종료
2번: 시각 15 시작(대기 12) → 최대 대기 12
jobs=[[0,2],[10,3],[11,1]] → 2
0번 종료(시각 2) 후 시각 10까지 유휴.
1번: 시각 10 시작(대기 0), 시각 13 종료 / 2번: 시각 13 시작(대기 2)시간 복잡도 목표: O(N log N)
참고: TypeScript에는 내장 PriorityQueue가 없습니다. 직접 힙을 구현해야 대형 케이스를 제한 시간 안에 통과할 수 있습니다.
▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.