반응형
package Programmers; import java.util.*; public class 귤고르기 { public static void main(String[] args){ 귤고르기 T = new 귤고르기(); int k = 2; int[] tangerine = {1, 1, 1, 1, 2, 2, 2, 3}; T.solution(k, tangerine); } 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> arr = new ArrayList<>(map.values()); arr.sort(Collections.reverseOrder()); for (int i : arr) { k -= i; answer++; if(k < 1){ break; } } return answer; } }
1. map에 key = 귤번호 value = 개수
2. 내림차순으로 정렬한 value 값을 arr 에다가 넣는다.
3. 주어진 k개를 arr 내림차순되어있는대로 내리면서 값을 구한다.
반응형
'기타 > 알고리즘' 카테고리의 다른 글
[알고리즘] 프로그래머스 - 기사단원의무기 Lv.1 (java) (0) | 2023.05.08 |
---|---|
[알고리즘] 프로그래머스 - 숫자카드나누기 Lv2 (Java) (0) | 2023.05.06 |
[알고리즘] 프로그래머스 -명예의전당 (Java) queue - Lv.1 (0) | 2023.05.01 |
[알고리즘] 프로그래머스 - 점찍기 (Java) (0) | 2023.04.30 |
[알고리즘] 프로그래머스 - 테이블 해시함수 Java (0) | 2023.04.28 |