#include <string> #include <vector> #include <iostream> #include <queue> 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]); } for(int i = 1; i <= n; i++) { int value = pq.top(); pq.pop(); if(value == 0) { break; } value--; pq.push(value); } for(int i = 0; i < works.size(); i++) { long long value = pq.top(); pq.pop(); answer += value * value; } return answer; } | cs |
'Programmers > Level 3' 카테고리의 다른 글
[프로그래머스 3] 숫자 게임 (C/C++) (0) | 2020.03.09 |
---|---|
[프로그래머스 3] 멀리 뛰기 (C/C++) (0) | 2020.03.09 |
[프로그래머스 3] 최고의 집합 (C/C++) (0) | 2020.03.09 |
[프로그래머스 3] 배달 (C/C++) (0) | 2020.03.09 |
[프로그래머스 3] 자물쇠와 열쇠 (C/C++) (★★★) (0) | 2020.03.09 |