Search

์ด์†Œ์˜

2.๋ฌธ์ œ์ด๋ฆ„
3. ์ˆ˜ํ–‰์‹œ๊ฐ„[์ดˆ(s)]
600
์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
์ข‹์•„์š” ์ˆ˜
: 0
5 more properties
| ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
package com.likelion.programmers; import java.util.Arrays; import java.util.PriorityQueue; public class Solution{ // ๋” ๋งต๊ฒŒ private int solution(int[] scoville, int K) { int answer = 0; PriorityQueue<Integer> heap = new PriorityQueue<>(); for (int i = 0; i < scoville.length; i++) { heap.offer(scoville[i]); } while(heap.peek() < K) { if(heap.size() == 1) { return -1; } int first = heap.poll(); int second = heap.poll(); int result = first + second * 2; heap.offer(result); answer++; } return answer; } public static void main(String[] args) { Solution main = new Solution(); int[] scoville = {1, 2, 3, 9, 10, 12}; int K = 7; System.out.println(main.solution(scoville, K)); } }
Java
๋ณต์‚ฌ
| ์ฝ”๋“œ ์„ค๋ช…ํ•˜๊ธฐ
๋งค๋ฒˆ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋‚ฎ์€ 2๊ฐœ์˜ ์Œ์‹์„ ์„ ํƒํ•˜์—ฌ ์„ž์–ด์•ผ ํ•˜๋ฏ€๋กœ ์šฐ์„ ์ˆœ์œ„ ํ ํ™œ์šฉ
๋งค๋ฒˆ ์ •๋ ฌ์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์—
PriorityQueue์— scoville๋ฐฐ์—ด์— ๋‹ด๊ธด ๋ชจ๋“  ์›์†Œ๋ฅผ ๋‹ด๊ธฐ
while()๋ฌธ์„ ์ด์šฉํ•˜์—ฌ PriorityQueue peek()๊ฐ’์ด K ๋ฏธ๋งŒ์ผ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต
์šฐ์„ ์ˆœ์œ„ ํ๋Š” ๊ฐ€์žฅ ๋‚ฎ์€ ์ˆ˜๋ถ€ํ„ฐ peek() ๋˜๋Š” poll()ํ•˜๋ฏ€๋กœ peek()๊ฐ’์ด K๋ณด๋‹ค ํฌ๋‹ค๋Š” ๊ฒƒ์€ ์šฐ์„ ์ˆœ์œ„ํ ๋‚ด์— ๋”์ด์ƒ K๋ณด๋‹ค ์ž‘์€ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜์˜ ์Œ์‹์ด ์กด์žฌํ•˜์ง€ ์•Š๋‹ค๋Š” ์˜๋ฏธ
while()๋ฌธ์ด ์‹คํ–‰๋˜์—ˆ์œผ๋‚˜ ์šฐ์„ ์ˆœ์œ„ ํ์˜ ๊ธธ์ด๊ฐ€ 1์ด๋ผ๋ฉด K๋ฏธ๋งŒ์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๋ฅผ ๊ฐ€์ง„ ์Œ์‹์ด ์กด์žฌํ•˜์ง€๋งŒ ๋”ํ•  ๋‹ค๋ฅธ ์Œ์‹์ด ์—†๋‹ค๋Š” ์˜๋ฏธ์ด๋ฏ€๋กœ -1 return
๋ฒˆ์—์„œ return ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์šฐ์„ ์ˆœ์œ„ ํ์˜ ์ฒซ ๋ฒˆ์งธ ์›์†Œ์™€ ๋‘ ๋ฒˆ์งธ ์›์†Œ๋ฅผ poll()ํ•˜์—ฌ ์ด๋ฅผ ๋”ํ•œ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๋ฅผ ๋‹ค์‹œ ์šฐ์„ ์ˆœ์œ„ ํ์— ๋„ฃ์–ด์ฃผ๊ณ  answer++ (์„ž์€ ํšŸ์ˆ˜ + 1)