반응형
pq를 이용해서 퇴근시간까지 최대 시간의 작업을 하나씩 업데이트해주었습니다.
#include <string>
#include <queue>
#include <vector>
using namespace std;
long long solution(int n, vector<int> works) {
long long answer = 0;
priority_queue<int> pq;
for(int i=0; i<works.size(); i++) pq.push(works[i]);
while(n-- && pq.top() > 0) {
pq.push(pq.top()-1);
pq.pop();
}
while(!pq.empty()) {
answer += pq.top() * pq.top();
pq.pop();
}
return answer;
}
반응형
'Algorithm' 카테고리의 다른 글
프로그래머스 : 방문 길이 (0) | 2021.11.13 |
---|---|
프로그래머스 : 블록 이동하기 (0) | 2021.11.13 |
프로그래머스 : 줄 서는 방법 (0) | 2021.11.13 |
프로그래머스 : 없어진 기록 찾기 (0) | 2021.11.13 |
프로그래머스 : 오랜 기간 보호한 동물(1) (0) | 2021.11.13 |