PS

프로그래머스 - 더 맵게

728x90

programmers.co.kr/learn/courses/30/lessons/42626

 

코딩테스트 연습 - 더 맵게

매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같

programmers.co.kr

 

STL 의 우선순위큐를 최소힙으로 만들면 풀리는 문제다

 

- c++

 

#include <bits/stdc++.h>
 
using namespace std;
 
int solution(vector<int> scoville, int K) {
    int answer = 0;
    priority_queue<intvector<int>, greater<int>> pq;
    for (int i = 0; i < scoville.size(); ++i) pq.push(scoville[i]);
    
    while(!pq.empty()) {
        if (pq.top() >= K) break;
        if (pq.size() < 2break;
        int first = pq.top();
        pq.pop();
        int second = pq.top();
        pq.pop();
        pq.push(first + 2 * second);
        answer++;
    }
    
    while(!pq.empty()) {
        if (pq.top() < K) answer = -1;
        break;
    }
    
    return answer;
}
cs

 

 

728x90

'PS' 카테고리의 다른 글

프로그래머스 - 가장 큰 수  (0) 2020.11.24
프로그래머스 - 이중 우선순위 큐  (0) 2020.11.23
SWEA 2819 - 격자판의 숫자 이어 붙이기  (0) 2020.11.21
SWEA 1206 - View  (0) 2020.11.21
프로그래머스 - 조이스틱  (0) 2020.11.20