https://school.programmers.co.kr/learn/courses/30/lessons/42626#
๋ฌธ์ ์ค๋ช
๋งค์ด ๊ฒ์ ์ข์ํ๋ Leo๋ ๋ชจ๋ ์์์ ์ค์ฝ๋น ์ง์๋ฅผ K ์ด์์ผ๋ก ๋ง๋ค๊ณ ์ถ์ต๋๋ค. ๋ชจ๋ ์์์ ์ค์ฝ๋น ์ง์๋ฅผ K ์ด์์ผ๋ก ๋ง๋ค๊ธฐ ์ํด Leo๋ ์ค์ฝ๋น ์ง์๊ฐ ๊ฐ์ฅ ๋ฎ์ ๋ ๊ฐ์ ์์์ ์๋์ ๊ฐ์ด ํน๋ณํ ๋ฐฉ๋ฒ์ผ๋ก ์์ด ์๋ก์ด ์์์ ๋ง๋ญ๋๋ค.
์์ ์์์ ์ค์ฝ๋น ์ง์ = ๊ฐ์ฅ ๋งต์ง ์์ ์์์ ์ค์ฝ๋น ์ง์ + (๋ ๋ฒ์งธ๋ก ๋งต์ง ์์ ์์์ ์ค์ฝ๋น ์ง์ * 2)
Leo๋ ๋ชจ๋ ์์์ ์ค์ฝ๋น ์ง์๊ฐ K ์ด์์ด ๋ ๋๊น์ง ๋ฐ๋ณตํ์ฌ ์์ต๋๋ค.
Leo๊ฐ ๊ฐ์ง ์์์ ์ค์ฝ๋น ์ง์๋ฅผ ๋ด์ ๋ฐฐ์ด scoville๊ณผ ์ํ๋ ์ค์ฝ๋น ์ง์ K๊ฐ ์ฃผ์ด์ง ๋, ๋ชจ๋ ์์์ ์ค์ฝ๋น ์ง์๋ฅผ K ์ด์์ผ๋ก ๋ง๋ค๊ธฐ ์ํด ์์ด์ผ ํ๋ ์ต์ ํ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
- scoville์ ๊ธธ์ด๋ 2 ์ด์ 1,000,000 ์ดํ์ ๋๋ค.
- K๋ 0 ์ด์ 1,000,000,000 ์ดํ์ ๋๋ค.
- scoville์ ์์๋ ๊ฐ๊ฐ 0 ์ด์ 1,000,000 ์ดํ์ ๋๋ค.
- ๋ชจ๋ ์์์ ์ค์ฝ๋น ์ง์๋ฅผ K ์ด์์ผ๋ก ๋ง๋ค ์ ์๋ ๊ฒฝ์ฐ์๋ -1์ return ํฉ๋๋ค.
-1 ์กฐ๊ฑด์ ์ ๋๋ก ์ฒดํฌํ์ง ์์์ ํ๋ฒ ํ๋ ค๋ฒ๋ ธ๋ค
ํ ์์ ๋จ์ ์ซ์๊ฐ 2๊ฐ ๋ฏธ๋ง์ผ ๋, -1์ ๋ฆฌํดํ๋ฉด ๋๋ค!
๋์ ํ์ด
#include <string>
#include <vector>
#include <algorithm>
#include <queue>
#include <iostream>
using namespace std;
int solution(vector<int> scoville, int K) {
int answer = 0;
priority_queue<int, vector<int>, greater<int> > pq(scoville.begin(), scoville.end());
while(1){
if(pq.top()>=K) break;
if(pq.size()<2) return -1;
int a = pq.top(); pq.pop();
int b = pq.top(); pq.pop();
int c = a + b*2;
pq.push(c);
// cout << c<<"/";
answer ++;
}
return answer;
}
'๐ ์๊ณ ๋ฆฌ์ฆ > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++/PGS] Lv.1 : ๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ (ํด์๋งต Map) (0) | 2024.10.03 |
---|---|
[MySQL/PGS] Lv.1 : ์๋์ฐจ ๋์ฌ ๊ธฐ๋ก์์ ์ฅ๊ธฐ/๋จ๊ธฐ ๋์ฌ ๊ตฌ๋ถํ๊ธฐ (0) | 2023.09.19 |
[C++/PGS] Lv.3 : ์ด์ค์ฐ์ ์์ํ (0) | 2023.09.17 |
[C++/PGS] Lv.2 : ์ด์ง ๋ณํ ๋ฐ๋ณตํ๊ธฐ (0) | 2023.09.17 |
[MySQL/PGS] Lv.3 : ์ฆ๊ฒจ์ฐพ๊ธฐ๊ฐ ๊ฐ์ฅ ๋ง์ ์๋น ์ ๋ณด ์ถ๋ ฅํ๊ธฐ (0) | 2023.09.16 |