Algorithm ๐ง๐ป๐ป/ํ๋ก๊ทธ๋๋จธ์ค(Programmers)
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ๋ ๋งต๊ฒ( Level 2)
dkswnkk
2021. 10. 20. 00:15
๋ฌธ์
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ๋ ๋งต๊ฒ
๋งค์ด ๊ฒ์ ์ข์ํ๋ Leo๋ ๋ชจ๋ ์์์ ์ค์ฝ๋น ์ง์๋ฅผ K ์ด์์ผ๋ก ๋ง๋ค๊ณ ์ถ์ต๋๋ค. ๋ชจ๋ ์์์ ์ค์ฝ๋น ์ง์๋ฅผ K ์ด์์ผ๋ก ๋ง๋ค๊ธฐ ์ํด Leo๋ ์ค์ฝ๋น ์ง์๊ฐ ๊ฐ์ฅ ๋ฎ์ ๋ ๊ฐ์ ์์์ ์๋์ ๊ฐ
programmers.co.kr
์ฝ๋
#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>>pq;
for(int i=0; i<scoville.size(); i++){
pq.push(scoville[i]);
}
while(pq.top()<K){
if(pq.size()==2){
int a=pq.top(); pq.pop();
int b=pq.top(); pq.pop();
int mix=a+(b*2);
if(mix<K){
answer=-1;
break;
}
else{
answer++;
break;
}
}
else if(pq.size()!=1){
answer++;
int a=pq.top(); pq.pop();
int b=pq.top(); pq.pop();
int mix=a+(b*2);
pq.push(mix);
}
}
return answer;
}