Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
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 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

자이의 프로그래밍

더 맵게 본문

Algorithm/Cases-Study

더 맵게

Xi_kor 2021. 6. 29. 18:57

우선순위 큐를 사용해 비교적 간단하게? 해결했다!

priority_queue를 선언한 뒤, 무한 반복문 내부에서 break 조건이 맞으면 빠져나가는 방식으로 진행했다.

#include <string>
#include <vector>
#include <queue>

using namespace std;

int solution(vector<int> scoville, int K) {
    int answer = 0;
    priority_queue <int, vector <int>, greater<int>> q;
    for(int i=0; i<scoville.size(); i++){
        q.push(scoville[i]);
    }
    while(true){
        //음식을 섞다가 제일 덜 매운 음식의 스코빌 지수가 K 이상이 될 때 break
        //모두 섞었는데도 불구하고 스코빌 지수가 K 미만일 경우 break
        int min1= q.top();
        q.pop();
        if(min1>=K) break;
        else if(q.empty()){
            answer=-1;
            break;
        }
        
        int min2=q.top();
        q.pop();
        q.push(min1+2*min2);
        answer++;
    }
    return answer;
}

'Algorithm > Cases-Study' 카테고리의 다른 글

단어수학  (0) 2021.07.10
가장 먼 노드  (0) 2021.06.29
점프 1890  (0) 2021.05.13
물통 2251  (0) 2021.05.13
부등호  (0) 2021.05.13