알고리즘/Lv2. 프로그래머스

[프로그래머스]귤 고르기 -JAVA

signal시노 2024. 8. 21. 10:04

https://school.programmers.co.kr/learn/courses/30/lessons/138476

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

최소의 종류로 팔려면 가장 개수가 많은 종류부터 차례대로 팔면 될 것이다.

귤 종류마다 개수를 구하고 내림차순 정렬하면 된다.

 

import java.util.*;
class Solution {
 public int solution(int k, int[] tangerine) {
        int answer = 0;
        Arrays.sort(tangerine);
        List<Integer> list = new LinkedList<>();
        int cnt = 0;
        for (int i = 0; i < tangerine.length; i++) {
            for (int j = i; j < tangerine.length; j++) {
                if (tangerine[i] == tangerine[j]) {
                    cnt++;
                    if(j == tangerine.length - 1){
                        list.add(cnt);
                        i = tangerine.length;
                        break;
                    } 
                } else {
                    i = j - 1;
                    list.add(cnt);
                    cnt = 0;
                    
                    break;
                }
            }
        }
        Collections.sort(list, Collections.reverseOrder());
            for(Integer i : list) {
                if(k > 0) {
                    k = k - i;
                    answer++;
                } else break;
                
            
        }
        return answer;
    }
}