-
[Algo Rhythm๐บ๐] ํ๋ก๊ทธ๋๋จธ์ค ๊ณ ๋์ kit ๋ ๋งต๊ฒAlgo Rhythm๐บ๐/Programmers 2020. 7. 13. 14:35
๐ ๋ฌธ์ ์ค๋ช
๋งค์ด ๊ฒ์ ์ข์ํ๋ 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 ํฉ๋๋ค.
๐ฏ ์ด๋ป๊ฒ ํ์๋
import java.util.PriorityQueue; import java.util.Arrays; import java.util.stream.Collectors; class Solution { public int solution(int[] scoville, int K) { int numMixed = 0; // init PriorityQueue<Integer> scovQ = Arrays.stream(scoville) .boxed() .collect(Collectors.toCollection(PriorityQueue::new)); while(scovQ.element() < K && scovQ.size() > 1) { numMixed++; int mixedScov = scovQ.remove() + (scovQ.remove() * 2); scovQ.add(mixedScov); } return (scovQ.element() >= K) ? numMixed : -1; } }
๐ง ์ ์ ๋ ๊ฒ ํ์๋
๋ฌธ์ ์ ํ์ด ํ์ด๊ธฐ๋ ํ์ง๋ง ๋งค๊ฐ๋ณ์์ ํฌ๊ธฐ์ ์์ ํ์์ผ๋ก ๊ตฌํํ ๊ฒฝ์ฐ ๋ณต์กํ ์ฝ๋๋ฅผ ์๊ฐํ ๋ ํ์ด ์ ์ ํ๋ค๊ณ ์๊ฐํ๋ค.
์๊ณ ๋ฆฌ์ฆ์ ๊ฐ๋จํ๋ฐ ๋ค์๊ณผ ๊ฐ๋ค.
๋จผ์ ์ต์ํ์ ๋ง๋ ๋ค.
๊ทธ๋ฆฌ๊ณ ํ์ ์ต์๊ฐ์ด K๋ณด๋ค ์๊ณ ํ์ ํฌ๊ธฐ๊ฐ 1๋ณด๋ค ํฌ๋ค๋ฉด ์์์ ์๊ณ ์์ ์์์ ์ค์ฝ๋น ์ง์๋ฅผ ํ์ ๋ฃ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
๋ง์ง๋ง์ผ๋ก ํ์ ์ต์๊ฐ์ ๋ณด๋๋ฐ ์ด๋ ํฌ๊ธฐ๊ฐ K ์ด์์ด๋ฉด ์์ ํ์๋ฅผ returnํ๊ณ ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ง๋ค ์ ์๋ค๋ ๋ป์ด๊ธฐ ๋๋ฌธ์ -1์ rerturnํ๋ค.
๐ ๋ฌด์์ ๋ฐฐ์ ๋
ํ์ ๋จผ์ ๊ณต๋ถํ๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ๋ค๊ณ ์๊ฐํด ์๋ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํด์ ํ์ ๊ณต๋ถํ๋ค.
https://gmlwjd9405.github.io/2018/05/10/data-structure-heap.html
[์๋ฃ๊ตฌ์กฐ] ํ(heap)์ด๋ - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io
'Algo Rhythm๐บ๐ > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
-