알고리즘/프로그래머스
(LEVEL 2)프로그래머스 - 귤 고르기 (JAVA)
꾸준함
2023. 3. 12. 14:45
문제
입출력 예
풀이.
1. tangerine의 길이만큼 돌며 숫자(크기 종류)에 해당하는 배열의 값을 플러스
2. 개수가 큰 값부터 차례대로 돌면서 k(귤의 개수)와 비교하며 만약 k보다 숫자가 같거나 크다면 break ( 해당 크기로 k가 채워진다면 까지의 종류면 된다.) 만약 k보다 숫자가 작으면 그 개수만큼 k를 빼주고 answer(종류의 개수)를 더하기 해준다
코드
import java.util.*;
class Solution {
public int solution(int k, int[] tangerine) {
int [] num = new int[10000001];
int answer = 1;
for(int n : tangerine){
num[n]++;
}
Arrays.sort(num);
for(int i= 10000000;i>0;i--){
if(num[i] >= k){
break;
}else{
k-= num[i];
answer++;
}
}
return answer;
}
}
- for문을 써서 시간이 좀 걸리는거 같은데 HashMap으로 풀면 더 빠를거 같다.