https://programmers.co.kr/learn/courses/30/lessons/42626
[풀이] 우선순위 queue
시간복잡도 : O(nlgn)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include <cstdio> #include <queue> #include <vector> using namespace std; int solution(vector<int> scoville, int K) { int answer = 0; priority_queue<int> pq; for (int& t : scoville) pq.push(-t); while (!pq.empty()) { if (-pq.top() >= K) return answer; if (pq.size() <= 1) return -1; int a = -pq.top(); pq.pop(); a += -2 * pq.top(); pq.pop(); pq.push(-a); answer++; } return answer; } | cs |
'Problem-Solving > Programmers' 카테고리의 다른 글
[프로그래머스] Level2 - 큰 수 만들기(C++) (0) | 2020.07.14 |
---|---|
[프로그래머스] Level2 - 조이스틱 (C++) (0) | 2020.07.14 |
[프로그래머스] Level2 - 괄호 변환 (C++) (0) | 2020.06.28 |
[프로그래머스] Level2 - 카카오 프렌즈 컬러링북 (0) | 2020.06.21 |
[프로그래머스] Level2 - 문자열 압축 (0) | 2020.06.12 |