문제 URL : https://programmers.co.kr/learn/courses/30/lessons/42627
문제 접근법 :
pq를 이용하는 문제입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#include <bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
int solution(vector<vector<int>> jobs) {
int answer = 0, time = 0;
int idx = 0;
priority_queue<pii, vector<pii>, greater<pii>> pq;
sort(jobs.begin(), jobs.end());
while (idx < jobs.size() || !pq.empty()) {
if (idx < jobs.size() && time >= jobs[idx][0]) {
pq.push({ jobs[idx][1],jobs[idx++][0] });
continue;
}
if (pq.empty())
time = jobs[idx][0];
else {
time += pq.top().first;
answer += time - pq.top().second;
pq.pop();
}
}
return answer / jobs.size();
}
|
cs |
궁금한점 혹은 모르는점 어떤 질문이든 댓글은 언제나 환영입니다.
'프로그래머스' 카테고리의 다른 글
프로그래머스 빛의 경로 사이클 (0) | 2021.11.17 |
---|---|
프로그래머스 단속카메라 (0) | 2021.11.02 |
프로그래머스 n^2 배열 자르기 (0) | 2021.11.02 |
프로그래머스 [1차] 다트 게임(2018 KAKAO BLIND RECRUITMENT) (0) | 2021.09.08 |
프로그래머스 [1차] 비밀지도(2018 KAKAO BLIND RECRUITMENT) (0) | 2021.09.08 |