이쿠의 슬기로운 개발생활

함께 성장하기 위한 보안 개발자 EverNote 내용 공유

코딩테스트

[프로그래머스][C++] 더 맵게

이쿠우우 2022. 3. 21. 21:35
반응형

 

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

 

코딩테스트 연습 - 더 맵게

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

programmers.co.kr

글쓴이의 답

개인적인 풀이 임으로

이것보다 더 좋은 알고리즘은 많음...

이렇게도 풀이하는구나.. 공유하기 위해 올림...

#include <string>
#include <vector>
#include <iostream>
#include <set>

using namespace std;

int solution(vector<int> scoville, int K) {
    int answer = 0;
    multiset<int> result(scoville.begin(), scoville.end());
    
    
    while(result.size()){ 
        
        if(*result.begin() < K){
            int temp1 = *result.begin();            
            result.erase(result.begin());
            if(result.size() == 0){
                break;
            }
            int temp2 = *result.begin();
            result.erase(result.begin());                            
            temp1 = temp1 + (temp2*2);
            result.insert(temp1);            
            answer++;
        }
        else{
            break;
        }
        
    }
    
    if(0 == result.size()){
        answer = -1;
    }
    
    return answer;
}

 

 

꾸준히 하다보면 실력이 늘겠지..

반응형