문제
입출력 예
풀이.
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으로 풀면 더 빠를거 같다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
(LEVEL 2)프로그래머스 - 달리기경주 (JAVA) (0) | 2023.04.13 |
---|---|
(LEVEL 2)프로그래머스 - 오픈채팅방 (JAVA) (0) | 2023.04.10 |
(LEVEL 1)프로그래머스 - 대충 만든 자판 (JAVA) (0) | 2023.03.01 |
(LEVEL 2)프로그래머스 - 2 x n 타일링 (JAVA) (0) | 2023.02.25 |
(LEVEL 2)프로그래머스 - 다리를 지나는 트럭(JAVA) (0) | 2023.02.25 |