[JAVA] [Algorithmus] Budget

Problembeschreibung

Unternehmen A untersuchte, wie viel es kosten würde, Dinge für jede Abteilung zu kaufen, um die Dinge zu unterstützen, die jede Abteilung benötigte. Da das Gesamtbudget jedoch festgelegt ist, können wir nicht alle Abteilungen mit Waren versorgen. Deshalb versuche ich, es möglich zu machen, Dinge in so vielen Abteilungen wie möglich zu kaufen.

Beim Kauf muss jede Abteilung den gesamten Betrag beantragen und unterstützen. Beispielsweise sollte eine Abteilung, die 1.000 Yen beantragt, immer 1.000 Yen unterstützen und kann nicht weniger als 1.000 Yen unterstützen.

Wenn das Array d und das Budget, die den für jede Abteilung angewendeten Betrag enthalten, als Parameter angegeben werden, erstellen Sie eine Lösungsmethode, damit die maximale Anzahl von Abteilungen zurückgegeben wird, die Dinge unterstützen können.

Bedingungen

--d ist ein Array, das den für jede Abteilung angewendeten Betrag enthält, und die Länge (Gesamtzahl der Abteilungen) beträgt 1 oder mehr und 100 oder weniger. --Beispiel) Wenn d.length = 2 ist, beträgt die Anzahl der Abteilungen 2. --Beispiel) Wenn d [0] = 3 ist, beträgt der Antragsbetrag für Abteilung 1 3.

Eingabe- / Ausgabebeispiel

d budget result
[1,3,2,5,4] 9 3
[2,2,3,3] 10 4

Kommentar


import java.util.Arrays;

class Solution {
    public int solution(int[] d, int budget) {
        
        Arrays.sort(d); //Aufsteigende Sorte
        
        int cnt = 0; //Für Zähler in Abteilungen, die unterstützen können
        for (; cnt < d.length; cnt++) {
            budget -= d[cnt]; //Jedes Mal, wenn wir unterstützen, werden wir das Budget reduzieren
            
            if (budget < 0) break;
        }
        
        return cnt;
    }
}

Recommended Posts

[Algorithmus] Budget
Java Algorithm Library-Artery-Sample