프로그래머스 귤 고르기 문제이다.
이 문제에서 중요한 로직은
맵을 생성해서 해당 밸류가 높은 순으로 정렬 시킨다. 그 뒤 k값을 그 밸류값을 빼주는 것을 반복한다.
반복의 제한은 0이하로 떨어질때까지이다.
코드는 다음과 같다.
import java.util.*;
class Solution {
public int solution(int k, int[] tangerine) {
int answer = 0;
Map<Integer, Integer>map = new HashMap<>();
for(int i: tangerine){
map.put(i, map.getOrDefault(i,0)+1);
}
//밸류 값으로 내림차순 하기 위해 필요한 과정
List<Integer>list = new ArrayList<>(map.keySet());
list.sort((o1,o2)->map.get(o2)-map.get(o1));
for(Integer i: list){
if(k<=0){
break;
}
k-=map.get(i);
answer++;
}
return answer;
}
}
'알고리즘' 카테고리의 다른 글
백준_패션왕 신예빈(JAVA) (0) | 2024.02.18 |
---|---|
백준 로봇청소기(JAVA) (0) | 2024.01.18 |
프로그래머스 - 피로도 (JAVA) (0) | 2023.12.03 |
백준 - 감시(java) (0) | 2023.03.30 |
백준 - 톱니바퀴 (0) | 2023.03.27 |