Notice
Recent Posts
Recent Comments
송민준의 개발노트
[프로그래머스] 더 맵게 본문
https://programmers.co.kr/learn/courses/30/lessons/42626?language=java
코딩테스트 연습 - 더 맵게
매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같
programmers.co.kr
힙을 활용한 문제 접근 필요
우선순위 큐 사용하였음.
public int solution(int[] scoville, int K) {
int returnValue = 0;
// 우선순위 큐 선언
Queue<Integer> queue = new PriorityQueue<>();
// int 형태를 Integer로 전환(람다를 만약 쓴다면...)
//List<Integer> convertArray = Arrays.stream(scoville).boxed().collect(Collectors.toList());
//queue.addAll(convertArray);
// int 형태를 Integer로 전환(람다 안쓰면 효율성 개선됨)
for(int i = 0; i < scoville.length; i++) {
queue.add(scoville[i]);
}
// 큐에 값이 있을 동안 값을 뽑아냄
while(!queue.isEmpty()) {
int firstValue = queue.poll();
if(firstValue < K) {
int secondValue = queue.poll();
int mixValue = firstValue + (secondValue * 2);
// 조합한 값이 K보다 작은데 다음값이 없을 경우 -1 반환
if(mixValue < K && queue.isEmpty()) {
queue.clear();
returnValue = -1;
} else { // 그게 아닐 경우 믹스값 더해줌
queue.add(mixValue);
returnValue++;
}
} else {
queue.clear();
}
}
return returnValue;
}
람다로 queue에 담을 경우
heap 참고링크
https://shanepark.tistory.com/261
JAVA로 알아보는 힙 (Heap) 자료구조
Heap Heap은 최소값 및 최대값을 최대한 빠르게 찾아내기 위해 특별히 고안된 자료 구조 입니다. 완전 이진트리(마지막 레벨을 제외하고 모든 레벨이 완전히 채워져 있는 트리의 형태)를 기본으로
shanepark.tistory.com
https://st-lab.tistory.com/225
자바 [JAVA] - 힙 정렬 (Heap Sort)
[정렬 알고리즘 모음] 더보기 1. 계수 정렬 (Counting Sort) 2. 선택 정렬 (Selection Sort) 3. 삽입 정렬 (Insertion Sort) 4. 거품 정렬 (Bubble Sort) 5. 셸 정렬 (Shell Sort) 6. 힙 정렬 (Heap Sort) - [현재..
st-lab.tistory.com
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 카카오프렌즈 컬러링북 (0) | 2022.04.30 |
---|---|
[프로그래머스] 오픈채팅방 (0) | 2022.04.28 |
[프로그래머스] 음양 더하기 (0) | 2022.04.24 |
[프로그래머스] 없는 숫자 더하기 (0) | 2022.04.18 |
[프로그래머스] 키패드 누르기 (0) | 2022.04.18 |