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 | 31 |
Tags
- 프로그래머스 문자열 정렬
- COS Pro
- Stack
- 삼각형의 완성조건
- 버퍼
- 클라이언트
- 알고리즘
- 자바
- StringTokenizer
- Programmers
- 스택
- 프로그래머스 풀이
- 스프링부트 도커로 배포
- 문자열
- SWEA
- Lv1
- 스프링부트 도커 배포
- 오름차순 정렬
- 백준 N과 M 자바
- 프로그래머스
- 큐
- java
- 스프링부트 도커
- lv0
- lv2
- 프로그래머스 자바
- 이진수 변환
- 백준
- Queue
- index of
Archives
- Today
- Total
mun dev
[Programmers] 귤 고르기 자바(Java) 본문
문제 설명
경화는 과수원에서 귤을 수확했습니다. 경화는 수확한 귤 중 'k'개를 골라 상자 하나에 담아 판매하려고 합니다. 그런데 수확한 귤의 크기가 일정하지 않아 보기에 좋지 않다고 생각한 경화는 귤을 크기별로 분류했을 때 서로 다른 종류의 수를 최소화하고 싶습니다.
예를 들어, 경화가 수확한 귤 8개의 크기가 [1, 3, 2, 5, 4, 5, 2, 3] 이라고 합시다. 경화가 귤 6개를 판매하고 싶다면, 크기가 1, 4인 귤을 제외한 여섯 개의 귤을 상자에 담으면, 귤의 크기의 종류가 2, 3, 5로 총 3가지가 되며 이때가 서로 다른 종류가 최소일 때입니다.
경화가 한 상자에 담으려는 귤의 개수 k와 귤의 크기를 담은 배열 tangerine이 매개변수로 주어집니다. 경화가 귤 k개를 고를 때 크기가 서로 다른 종류의 수의 최솟값을 return 하도록 solution 함수를 작성해주세요.
제한사항
- 1 ≤ k ≤ tangerine의 길이 ≤ 100,000
- 1 ≤ tangerine의 원소 ≤ 10,000,000
입출력 예
k | tangerine | result |
6 | [1, 3, 2, 5, 4, 5, 2, 3] | 3 |
4 | [1, 3, 2, 5, 4, 5, 2, 3] | 2 |
2 | [1, 1, 1, 1, 2, 2, 2, 3] | 1 |
통과한 코드 ✅
import java.util.*;
class Solution {
static Map<Integer,Integer> map=new HashMap<>();
public int solution(int k, int[] tangerine) {
int answer=0;
for(int t:tangerine){
map.put(t,map.getOrDefault(t,0)+1);
}
// 개수 기준으로 정렬
List<Integer> keys=new ArrayList<>(map.keySet());
Collections.sort(keys,new compartor());
// 정렬된 key리스트에서 값을 하나씩 가져와서 k에 빼줌
for(int key: keys){
if(k<=0){
break;
}
answer++;
k-=map.get(key); // 개수가 많은 귤부터 빼주기
}
return answer;
}
// 내림차순 정렬
public class compartor implements Comparator<Integer>{
public int compare(Integer o1, Integer o2){
return map.get(o2).compareTo(map.get(o1));
}
}
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[Programmers] 문자열 내 마음대로 정렬하기 자바(Java) (1) | 2023.05.30 |
---|---|
[Programmers] 숫자 문자열과 영단어 자바(Java) (0) | 2023.05.19 |
[Programmers] 멀리뛰기 자바(Java) (0) | 2023.05.15 |
[Programmers] 튜플 자바(Java) (0) | 2023.05.12 |
[Programmers] 크기가 작은 문자열 자바(Java) (0) | 2023.05.07 |