seunghyun Note
[프로그래머스] 귤 고르기 with JAVA 본문
728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/138476
문제 설명
제한 사항 및 입출력 예제
개념 및 풀이
HashMap<Integer, Integer> map은 과일의 개수를 추적하는 데 사용됩니다.
tangerine 배열을 반복하면서 각 과일의 개수를 map에 저장합니다.
그 후, map의 키 값을 리스트로 가져와서 과일 개수를 기준으로 내림차순으로 정렬합니다.
그리고 k 값이 0보다 큰 동안, 가장 많은 개수의 과일부터 순차적으로 k값을 해당 과일의 개수만큼 감소시키고, 선택된 과일 수인 answer를 1씩 증가시킵니다. 그리고 최종적으로 answer를 반환합니다.
import java.util.*;
class Solution {
public int solution(int k, int[] tangerine) {
int answer=0;
HashMap<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> keys = new ArrayList<>(map.keySet());
keys.sort(((o1, o2) -> map.get(o2) - map.get(o1)));
int i = 0;
while (k > 0) {
k -= map.get(keys.get(i));
answer++;
i++;
}
return answer;
}
}
728x90
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
[프로그래머스] - 구명보트 with JAVA (1) | 2024.01.04 |
---|---|
[프로그래머스] - 예상 대진표 with JAVA (0) | 2024.01.04 |
[프로그래머스] N개의 최소공배수 with JAVA (0) | 2024.01.04 |
[프로그래머스] - 멀리 뛰기 with JAVA (0) | 2024.01.04 |
[프로그래머스] - 추억점수 with JAVA (1) | 2024.01.04 |