반응형

문제

https://programmers.co.kr/learn/courses/30/lessons/42626

 

코딩테스트 연습 - 더 맵게

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

programmers.co.kr

 

소스

import java.util.PriorityQueue;

class Solution {
    public int solution(int[] scoville, int K) {
        int answer = 0;

        //기본 셋팅
        PriorityQueue<Integer> q = new PriorityQueue<>();
        for (int x : scoville) {
            q.offer(x);
        }


        while (q.size() > 1) {  //음식 하나 남으면 못섞으니까.
            if (q.peek() >= K) {    //조건 통과하면 바로 리턴
                return answer;
            }
            q.offer(q.poll() + q.poll() * 2);   //섞어서 다시 넣음
            ++answer;                              //횟수 증가
        }

        if (q.peek() < K) { //음식 하나남았는데 조건 안되면 -1
            return -1;
        }

        return answer;
    }
}
반응형

'개발 > 알고리즘' 카테고리의 다른 글

[프로그래머스] 문자열 압축  (0) 2021.08.25
[프로그래머스] 순위 검색  (0) 2021.08.09
프로그래머스 압축  (0) 2021.07.09
프로그래머스 튜플  (0) 2021.07.08
프로그래머스 괄호 변환  (0) 2021.07.01
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기