[Java] 귤 고르기 - Lv2 프로그래머스코딩테스트/프로그래머스2023. 3. 22. 07:06
Table of Contents
728x90
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/138476
풀이
주어진 k값을 내려가며 k가 0보다 작아질 때 종료시켰다.
주어진 귤의 크기의 중복값이 필요해서 Map을 선언하여
getOrDefault메서드를 활용해 중복일 경우 숫자를 증가시켜 해당 귤의 크기의 갯수를 파악했고
Value에 대한 내림차순 정렬이 필요했기 때문에 따로 List를 선언하여 내림차순 정렬을 한 후 문제를 풀었다.
import java.util*;
class Solution {
public int solution(int k, int[] tangerine) {
int answer = 0;
Arrays.sort(tangerine);
Map<Integer, Integer> map = new HashMap<>();
for(int i=0; i<tangerine.length; i++) {
map.put(tangerine[i], map.getOrDefault(tangerine[i], 0)+1);
}
List<Integer> keySet = new ArrayList<>(map.keySet());
keySet.sort((o1, o2) -> map.get(o2).compareTo(map.get(o1)));
for(int i : keySet) {
k -= map.get(i);
answer++;
if(k <= 0) return answer;
}
return answer;
}
}
728x90
300x250
@mag1c :: 꾸준히 재밌게
2023.04 ~ 백엔드 개발자의 기록
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!