Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- imeOptions
- java
- SWEA
- Android
- 최단경로
- 시뮬레이션
- 순수함수
- Kotlin
- BuildConfig
- 지능형 기차2
- 자바
- 프로그래머스
- dfs
- 약수 구하기
- 조합
- 스카이라인 쉬운거
- 2501
- Parcelize
- 순열
- 백준
- 백준 14501
- 오르막수
- 백준 퇴사
- hilt
- val
- EditText
- EditorInfo
- Parcelable
- 완전탐색
- BFS
Archives
- Today
- Total
안드 공부를 해볼까?
[Java] 프로그래머스 더 맵게 본문
728x90
1. 문제 파악
Leo가 모든 음식의 스코빌 지수를 K 이상 만들고 싶다고 한다.
섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2)
즉, 가장 작은 2개의 숫자를 가져와 위의 공식에 넣어주면 된다.
구현 방식은 많겠지만 나는 우선순위 큐를 사용해서 배열의 모든 원소들을 넣어주고 위의 공식을 사용했다.
2. 구현
import java.util.*;
class Solution {
public int solution(int[] scoville, int K) {
int answer = 0;
PriorityQueue<Integer> p = new PriorityQueue<>();
//스코빌 데이터 넣어주기
for(int scovilleData : scoville){
p.offer(scovilleData);
}
//최소 스코빌 지수가 K보다 작다면 반복
while(p.peek() < K){
//만약 1개만 남았으면 종료
if(p.size() == 1){
return -1;
}
//계산 후 데이터 넣어주기
int newScoville = p.poll() + (p.poll() * 2);
p.offer(newScoville);
answer++;
}
return answer;
}
}
딱히 어렵다고 생각하는 부분은 없다. 주석을 잘 보면 바로 이해할 수 있다.
3. 마무리
취업 준비를 하면서 알고리즘 실력이 많이 부족하다고 느껴서 정리글 작성을 시작했다.
1일 1알고리즘, 1일 1커밋으로 취업까지 쭈욱 달려보고싶다.
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[Java] 프로그래머스 입국심사 (0) | 2022.05.10 |
---|---|
[Java] 프로그래머스 N으로 표현 (0) | 2022.05.08 |
[Java] 프로그래머스 K번째 수 (0) | 2022.05.05 |
[Java] 프로그래머스 이중우선순위큐 (0) | 2022.05.05 |
[Java] 프로그래머스 디스크 컨트롤러 (0) | 2022.05.05 |
Comments