문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/42627
힙과 정렬을 이용하여 푸는 문제였습니다.
알고리즘은 아래와 같습니다.
1. 작업을 시간순으로 정렬한 벡터를 생성해주고, 작업 소요시간이 짧은 순서가 우선순위를 갖는 힙을 생성해줍니다.
2. 초를 나타내는 sec 변수를 정의하고 0으로 초기화한 뒤,
2.1 1번에서 생성한 벡터 내 sec 이하인 작업들을 1번에서 생성한 pq에 넣어줍니다.
2.2 pq가 비어있을 경우 sec를 1 증가시켜주고 pq가 비어있지 않다면 제일 앞에 있는 작업을 처리해줍니다.
2.2.1 이 때, sec에 2.2에서 구한 작업의 소요시간을 더해주고 sum이라는 변수에는 (sec - 작업의 요청시간)을 더해줍니다.
3. 2번 과정을 작업이 모두 처리될 때까지 진행해줍니다.
4. sum / (총 작업 개수)를 반환해줍니다.
개발환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
반응형
'알고리즘 > programmers' 카테고리의 다른 글
[Programmers 코딩테스트 고득점 Kit] 체육복 (0) | 2021.09.24 |
---|---|
[Programmers 코딩테스트 고득점 Kit] 이중우선순위큐 (0) | 2021.09.23 |
[Programmers 코딩테스트 고득점 Kit] 더 맵게 (0) | 2021.09.22 |
[Programmers 코딩테스트 고득점 Kit] 도둑질 (0) | 2021.09.22 |
[Programmers 코딩테스트 고득점 Kit] 등굣길 (0) | 2021.09.22 |