์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ๋์ ํฉ
- ์ํ
- ๋ณํฉ์ ๋ ฌ
- ์ฐ์ ์์ํ
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋๋น์ฐ์ ํ์
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ๊ทธ๋ฆฌ๋
- ํ์ด์ฌ
- ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ
- db
- ์ ๋ ฌ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- SQL
- BFS
- ๊ทธ๋ํ
- DFS
- ๋จธ์ง์ํธ
- ์์๊ตฌํ๊ธฐ
- ์๊ณ ๋ฆฌ์ฆ
- ๊ทธ๋ํํ์
- ๊ตฌํ
- LIS
- ๊น์ด์ฐ์ ํ์
- DP
- ์๋ฃ๊ตฌ์กฐ
- ์ค๋ธ์
- ๋์ ๊ณํ๋ฒ
- ์์ํ์
- ๋ฐฑ์ค
๐๐ญ๐ฐ๐ธ ๐ฃ๐ถ๐ต ๐ด๐ต๐ฆ๐ข๐ฅ๐บ
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ ๋งต๊ฒ - C++ ๋ณธ๋ฌธ
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ ๋งต๊ฒ - C++
.23 2024. 4. 11. 16:23๋ฌธ์
๋งค์ด ๊ฒ์ ์ข์ํ๋ 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 ํฉ๋๋ค.
์ ์ถ๋ ฅ ์
scoville | K | return |
[1, 2, 3, 9, 10, 12] | 7 | 2 |
ํ์ ์ฌ์ฉํ๋ ๋ฌธ์ .
์ฐ์ ์์ ํ๋ ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ์ ์๋์ผ๋ก ์ํํด์ฃผ๋ฏ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ ์ต์ ์ ์ฌ์ฉํ์ฌ ์ค์ฝ๋น ์ง์๊ฐ ๋ฎ์ ์์ผ๋ก ์ ๋ ฌ์ ์ํํ๊ณ , ๊ฐ์ฅ ์ ์์๋ถํฐ K๋ณด๋ค ๋ฎ์ ์ง ํ์ธํ์ฌ ๋ฎ๋ค๋ฉด ๊ทธ ๋ค์ ์์์ ์์ด์ ์๋ก์ด ์ค์ฝ๋น ์ง์๋ก update๋ฅผ ์งํํ๋ค.
๊ฐ์ฅ ์์ ์์๊ฐ K๋ณด๋ค ์์๋ฐ ๊ทธ ๋ค์ ์์๊ฐ ์กด์ฌํ์ง ์๋๋ค๋ฉด ๋ง์ง๋ง ์ ํ์ฌํญ์ ๊ฑธ๋ฆฌ๋ฏ๋ก -1์ returnํด์ค๋ค.
๋๊น์ง ๋๋ ๋ฐฉ์์ผ๋ก ์งฐ์๋๋ฐ, ๊ฐ์ฅ ์์ ์์๊ฐ K๋ณด๋ค ํฌ๋ฉด ๋ ์ด์ ์์์ ์์ง ์์๋ ๋๊ธฐ ๋๋ฌธ์ while๋ฌธ์ ์กฐ๊ฑด์ pq.top() <= K ๋ก ํด์ค๋ ๋๋ค..
์ฝ๋
#include <string>
#include <vector>
#include <queue>
using namespace std;
int solution(vector<int> scoville, int K) {
priority_queue<int, vector<int>, greater<int>> pq;
for(int i : scoville) {
pq.push(i);
}
int count = 0, index = 0;
while(true) {
if(pq.top() < K) {
int temp = pq.top();
pq.pop();
if(pq.empty()) return -1;
pq.push(temp + pq.top() * 2);
pq.pop();
count++;
}
else {
pq.pop();
if(pq.empty()) break;
}
}
return count;
}
'์ฝ๋ฉํ ์คํธ ์ค๋น > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฌํ๊ฒฝ๋ก - C++ (0) | 2024.11.08 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ๋จ์์นด๋ฉ๋ผ - C++ (0) | 2024.04.11 |
[ํ๋ก๊ทธ๋๋จธ์ค] N์ผ๋ก ํํ - C++ (0) | 2024.04.11 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์กฐ์ด์คํฑ - C++ (0) | 2024.04.11 |
[ํ๋ก๊ทธ๋๋จธ์ค] ํ๋ก์ธ์ค - C++ (0) | 2024.04.08 |