본문 바로가기
알고리즘/Graph

더 맵게

by e-pd 2020. 8. 31.

 

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

 

코딩테스트 연습 - 더 맵게

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

programmers.co.kr

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.Queue;
import java.util.PriorityQueue;
 
class Solution {
    public int solution(int[] scoville, int K) {
        Queue<Integer> queue = new PriorityQueue<>();
        for (int food : scoville) queue.offer(s);
 
        int answer = 0;
        while (queue.peek() < K) {
            answer += 1;
 
            if (queue.size() < 2return -1;
 
            int newFood = queue.poll() + queue.poll() * 2;
            queue.offer(newDish);
        }
 
        return answer;
    }
}
cs

1. scovile에는 값이 들어가있다.  queue는 우선순위 queue로 선언을 한다. 

2. 우선순위 queue에 값을 넣는다.

3. K보다 큰 값을 만들어야하니, queue가 K 보다 작은 값을 찾는다.

4. queue에 들어있는 값이 K보다 커질때까지 answer count를 증가시킨다.

5. 스코빌 지수는 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2)

6. queue에 값을 넣는다. 

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

입국심사  (0) 2020.09.05