알고리즘

[프로그래머스/JAVA] 더 맵게

데메즈 2021. 12. 30. 16:18
728x90
반응형

https://programmers.co.kr/learn/courses/30/lessons/42626?language=java 

 

코딩테스트 연습 - 더 맵게

매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같

programmers.co.kr

import java.util.*;

class Solution {
    public int solution(int[] scoville, int K) {
        int answer = 0;
        PriorityQueue<Integer> heap = new PriorityQueue();
        
        for(int s : scoville){
            heap.offer(s);
        }
        
        while(heap.peek() < K){
            if(heap.size() == 1){
                return -1;
            }
            int a = heap.poll();
            int b = heap.poll();
            
            int result = a + (2*b);
            
            heap.offer(result);
            answer++;
        }
        
        return answer;
    }
}

힙(우선순위 큐)은 자동 오름차순 정렬이 된다는 것을 이용해 제일 작은 값과 하나 더 큰 값을 꺼내 연산 후 비교한다.

 

- 참고

https://jar100.tistory.com/18

 

프로그래머스 알고리즘 : 더 맵게 (java)

프로그래머스 알고리즘 (java) 더 맵게 프로그래머스 (더 맵게) 코드 리뷰 배열중 값(스코빌 지수)이 가장 낮은 두개의 음식을 조건 ( a + b*2) 에 맞춰 계산해 모든 배열의 값이 k 이상이 되게 만들어

jar100.tistory.com

https://hidelookit.tistory.com/41

 

[프로그래머스] 힙(Heap) - 더 맵게 (Java)

프로그래머스 Level 2 힙(Heap) - 더 맵게 (자바) 출처 https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로..

hidelookit.tistory.com

 

728x90
반응형