YataNox
[Java] Lv.2 귤 고르기 본문
문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이
우선 귤을 크기별로 정렬한다.
이후 크기별로 갯수를 카운트하고 다시 갯수별로 정렬을 진행한다.
그러면 한 배열에 크기당 갯수 별로 정렬된다.
이후 가장 많은 갯수를 가진 귤부터 k개를 꺼낼 때까지 담아주면 종료
자바 코드
import java.util.Arrays;
class Solution {
public int solution(int k, int[] tangerine) {
int answer = 0;
// 귤 크기별 정렬
Arrays.sort(tangerine);
int[] count = new int[tangerine[tangerine.length-1]];
// 크기별 갯수 카운트
for(int i = 0; i < tangerine.length; i++){
count[tangerine[i] - 1] += 1;
}
// 갯수 별로 정렬
Arrays.sort(count);
// 가장 수가 많은 귤부터 진행
for(int i = count.length - 1; i >= 0; i--){
// 종류 하나 증가
answer += 1;
// 담으려는 귤 갯수 감소
k -= count[i];
// 귤을 다 담으면 종료
if(k <= 0){
break;
}
}
return answer;
}
}
'코딩 테스트 > PROGRAMMERS' 카테고리의 다른 글
[Java] Lv.2 우박수열 정적분 (0) | 2024.06.18 |
---|---|
[Java] Lv.2 숫자 카드 나누기 (0) | 2024.06.18 |
[Java] Lv.2 디펜스 게임 (0) | 2024.06.13 |
[Java] Lv.2 테이블 해시 함수 (2) | 2024.06.13 |
[Java] Lv.2 유사 칸토어 비트열 (0) | 2024.06.13 |