PS
프로그래머스. 디스크 컨트롤러
tose33
2021. 12. 26. 16:08
https://programmers.co.kr/learn/courses/30/lessons/42627
코딩테스트 연습 - 디스크 컨트롤러
하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를
programmers.co.kr
현재시간 이전에 들어온 요청들은 어처피 모두 지금 바로 실행할수 있는 작업들 이므로,
요청시간과는 상관없이 소요시간이 빠른 순으로 실행되어야 한다.
따라서
먼저 jobs 배열을 요청시간 기준 오름차순으로 정렬 하고,
현재 시간 이전의 요청시간을 갖는 작업들 중 수행시간이 빠른 작업들을 우선 처리해야 하므로, 우선순위큐를 만들어서 넣는다.
우선순위 큐는 compare 구조체를 이용해서 jobs[i]의 두번째 요소인 요청시간 기준 오름차순으로 정렬되도록 한다.
1. jobs에서 현재시간 이전에 들어온 요청들을 모두 우선순위 큐에 넣는다.
2. 우선순위 큐에 들어간 작업들은 두번째 요소인 요청시간 기준으로 오름차순 정렬된다.
3. 큐의 top에 있는 작업을 처리한다.