๐ 1. ๋ฌธ์ ์ค๋ช
์ ์ถ๋ ฅ ์ ์ค๋ช
1. ์ค์ฝ๋น ์ง์๊ฐ 1์ธ ์์๊ณผ 2์ธ ์์์ ์์ผ๋ฉด ์์์ ์ค์ฝ๋น ์ง์๊ฐ ์๋์ ๊ฐ์ด ๋ฉ๋๋ค.
์๋ก์ด ์์์ ์ค์ฝ๋น ์ง์ = 1 + (2 * 2) = 5
๊ฐ์ง ์์์ ์ค์ฝ๋น ์ง์ = [5, 3, 9, 10, 12]
2. ์ค์ฝ๋น ์ง์๊ฐ 3์ธ ์์๊ณผ 5์ธ ์์์ ์์ผ๋ฉด ์์์ ์ค์ฝ๋น ์ง์๊ฐ ์๋์ ๊ฐ์ด ๋ฉ๋๋ค.
์๋ก์ด ์์์ ์ค์ฝ๋น ์ง์ = 3 + (5 * 2) = 13
๊ฐ์ง ์์์ ์ค์ฝ๋น ์ง์ = [13, 9, 10, 12]
๋ชจ๋ ์์์ ์ค์ฝ๋น ์ง์๊ฐ 7 ์ด์์ด ๋์๊ณ ์ด๋ ์์ ํ์๋ 2ํ์ ๋๋ค.
๐ก 2. ์ ๊ทผ๋ฐฉ์
ํญ์ ์ ๋ ฌ์ด ๋์ด ์์ด์ ๋ฎ์ ์์๋ถํฐ ๊บผ๋ผ ์ ์๋ ์ฐ์ ์์ ํ ์ฌ์ฉ
Priority Queue(์ฐ์ ์์ํ)
๋ฐฐ์ด์ ์ฐ์ ์์ ํ์ ๋ฃ๋๋ค
ํ ์์์ ๊ฐ์ฅ ๋ฎ์ ์ซ์๊ฐ k ์ด์์ด ๋ ๋ ๊น์ง ๊ฐ์ฅ ๋ฎ์ ์ซ์ ๋ ๊ฐ ์๊ธฐ
์ฐ์ ์์ ํ์์ poll์ ๋ ๋ฒ ํด ์ฃผ๋ฉด ๊ฐ์ฅ ๋ฎ์ ์ซ์์ ๋ ๋ฒ์งธ๋ก ๋ฎ์ ์ซ์๊ฐ ๋์จ๋ค
์์ ์์์ ์ค์ฝ๋น ์ง์ = ๊ฐ์ฅ ๋งต์ง ์์ ์์์ ์ค์ฝ๋น ์ง์ + (๋ ๋ฒ์งธ๋ก ๋งต์ง ์์ ์์์ ์ค์ฝ๋น ์ง์ * 2)
ํด๋น ์์์ ์ํํ๊ณ ๊ฒฐ๊ณผ๊ฐ์ ๋ค์ ํ์ ๋ฃ๋๋ค.
๊ฐ์ฅ ๋ฎ์ ์ซ์๋ฅผ ๋ค์ min ๋ณ์์ ๋ฃ๊ธฐ
์ด ๊ณผ์ ์ด ํ ๋ฒ ๋ฐ๋ณต๋ ๋๋ง๋ค cnt++ ํด์ค๋ค.
loop์ ์ข ๋ฃ ์กฐ๊ฑด์ ํ์ ๊ฐ์ฅ ๋ฎ์ ์ซ์๊ฐ K์ด์์ผ ๋ ์ด๊ธฐ ๋๋ฌธ์ ๋ฐ๋ผ์ while๋ฌธ์ min < K ๋๋ง ๋์๊ฐ๋ค.
๋, ๋ฃจํ ์์์ queue๊ฐ 2 ์ด์์ผ ๋๋ง loop์์ ๊ณ์ฐ์์ด ์ํ๋์ด์ผ ํ๋ค.
ํ์ ํฌ๊ธฐ๊ฐ 1์นธ์ด๋ฉด ๊ณ์ฐ์ด ๋ถ๊ฐํ๋ฏ๋ก -1 ๋ฆฌํดํด์ค๋ค.
โญ 3. ์ฝ๋
import java.util.*;
class Solution {
public int solution(int[] scoville, int K) {
int cnt = 0;
PriorityQueue<Integer> pqueue = new PriorityQueue<>();
for (int s : scoville) {
pqueue.add(s);
}
int min = pqueue.peek();
while(min < K) {
if(pqueue.size()>=2) {
pqueue.add(pqueue.poll() + pqueue.poll() * 2);
min = pqueue.peek();
cnt++;
} else {
return -1;
}
}
return cnt;
}
}
๐๐ป 4. ๊ฐ์ ์ ํ ๋ฌธ์ (์ฐ์ ์์ํ)
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ํ๋ก์ธ์ค ๋ฌธ์ ํ์ด (์คํ/ํ)
1. ๋ฌธ์ ์ค๋ช ์์ #1๋ฌธ์ ์ ๋์จ ์์ ๊ฐ์ต๋๋ค. ์์ #26๊ฐ์ ํ๋ก์ธ์ค [A, B, C, D, E, F]๊ฐ ๋๊ธฐ ํ์ ์๊ณ ์ค์๋๊ฐ [1, 1, 9, 1, 1, 1] ์ด๋ฏ๋ก [C, D, E, F, A, B] ์์ผ๋ก ์คํ๋ฉ๋๋ค. ๋ฐ๋ผ์ A๋ 5๋ฒ์งธ๋ก ์ค
awesomepossum.tistory.com
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ๋์คํฌ์ปจํธ๋กค๋ฌ (ํ/Heap) ์ฐ์ ์์ ํ
๐ 1. ๋ฌธ์ ์ค๋ช ํ๋๋์คํฌ๋ ํ ๋ฒ์ ํ๋์ ์์ ๋ง ์ํํ ์ ์์ต๋๋ค. ๋์คํฌ ์ปจํธ๋กค๋ฌ๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ต๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ ์์ฒญ์ด ๋ค์ด์จ ์์๋๋ก ์ฒ๋ฆฌํ๋
awesomepossum.tistory.com
'Algorithm > Programmers_Best' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ์ด์ค์ฐ์ ์์ํ (ํ/Heap) (17) | 2024.11.13 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ๋์คํฌ์ปจํธ๋กค๋ฌ (ํ/Heap) Feat. ์ฐ์ ์์ํ (26) | 2024.11.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ์ฃผ์๊ฐ๊ฒฉ (์คํ) (8) | 2024.11.11 |
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ๋ค๋ฆฌ๋ฅผ ์ง๋๋ ํธ๋ญ (ํ) (8) | 2024.11.11 |
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ํ๋ก์ธ์ค ๋ฌธ์ ํ์ด (ํ) (4) | 2024.11.09 |