반응형
SMALL
https://programmers.co.kr/learn/courses/30/lessons/42626
코딩테스트 연습 - 더 맵게
매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같
programmers.co.kr
- 연산 후 계속해서 제일 작은 값 2개를 찾아 진행하므로 최소힙 이용
- PriorityQueue
https://conanglog.tistory.com/222
[JAVA] 우선순위큐 PriorityQueue 사용하기
우선순위큐 (Priority Queue) 우선순위가 높은 엘리먼트가 먼저 나가는 자료구조 heap을 이용하여 구현! 이진트리 구조 O(nlogn) 1. 최소힙 (MinHeap) 제일 낮은 숫자가 root 1.1 Priority Queue 선언 PriorityQue..
conanglog.tistory.com
import java.util.*;
class Solution {
public 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) { // root(제일 작은 값)가 k보다 작으면 실행 / 커지면 그만
if(heap.size() < 2)
return -1;
int lowScov1 = heap.poll(); // 제일 작은 root 꺼내서 변수에 넣기
int lowScov2 = heap.poll(); // 한번 꺼냈으니까 얘는 2번째로 작은 수가 됨
int mixFood = lowScov1 + (lowScov2 * 2); // 문제에 있는 공식
heap.offer(mixFood); // 더한 값을 다시 힙에 넣어주기
answer++; // 섞는 횟수 증가
}
return answer;
}
}
반응형
LIST
'JAVA > Algorithm' 카테고리의 다른 글
[프로그래머스/java] 전화번호 목록 (문자열 비교 - hashCode) *2021 첫 글* (0) | 2021.01.01 |
---|---|
[프로그래머스/java] 큰 수 만들기 (0) | 2020.12.29 |
[프로그래머스/java] H-Index (+ 설명) (0) | 2020.12.29 |
[프로그래머스/java] 가장 큰 수 (+ Comparator / compareTo) (0) | 2020.12.28 |
[프로그래머스/java] 다리를 지나는 트럭 (큐) (+ 주석 설명) (0) | 2020.12.26 |