All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g1801_1900.s1833_maximum_ice_cream_bars.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
package g1801_1900.s1833_maximum_ice_cream_bars;

// #Medium #Array #Sorting #Greedy #2022_05_07_Time_39_ms_(84.49%)_Space_56.7_MB_(78.12%)

import java.util.Arrays;

/**
 * 1833 - Maximum Ice Cream Bars\.
 *
 * Medium
 *
 * It is a sweltering summer day, and a boy wants to buy some ice cream bars.
 *
 * At the store, there are `n` ice cream bars. You are given an array `costs` of length `n`, where `costs[i]` is the price of the ith ice cream bar in coins. The boy initially has `coins` coins to spend, and he wants to buy as many ice cream bars as possible.
 *
 * Return _the **maximum** number of ice cream bars the boy can buy with_ `coins` _coins._
 *
 * **Note:** The boy can buy the ice cream bars in any order.
 *
 * **Example 1:**
 *
 * **Input:** costs = [1,3,2,4,1], coins = 7
 *
 * **Output:** 4
 *
 * **Explanation:** The boy can buy ice cream bars at indices 0,1,2,4 for a total price of 1 + 3 + 2 + 1 = 7.
 *
 * **Example 2:**
 *
 * **Input:** costs = [10,6,8,7,7,8], coins = 5
 *
 * **Output:** 0
 *
 * **Explanation:** The boy cannot afford any of the ice cream bars.
 *
 * **Example 3:**
 *
 * **Input:** costs = [1,6,3,1,2,5], coins = 20
 *
 * **Output:** 6
 *
 * **Explanation:** The boy can buy all the ice cream bars for a total price of 1 + 6 + 3 + 1 + 2 + 5 = 18.
 *
 * **Constraints:**
 *
 * *   `costs.length == n`
 * *   1 <= n <= 105
 * *   1 <= costs[i] <= 105
 * *   1 <= coins <= 108
**/
public class Solution {
    public int maxIceCream(int[] costs, int coins) {
        Arrays.sort(costs);
        int i = 0;
        int ans = 0;
        while (i < costs.length && costs[i] <= coins) {
            coins -= costs[i];
            i++;
            ans++;
        }
        return ans;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy