Class Cashier
- java.lang.Object
-
- g1301_1400.s1357_apply_discount_every_n_orders.Cashier
-
public class Cashier extends Object
1357 - Apply Discount Every n Orders.Medium
There is a supermarket that is frequented by many customers. The products sold at the supermarket are represented as two parallel integer arrays
productsandprices, where theithproduct has an ID ofproducts[i]and a price ofprices[i].When a customer is paying, their bill is represented as two parallel integer arrays
productandamount, where thejthproduct they purchased has an ID ofproduct[j], andamount[j]is how much of the product they bought. Their subtotal is calculated as the sum of eachamount[j] * (price of the jth product).The supermarket decided to have a sale. Every
nthcustomer paying for their groceries will be given a percentage discount. The discount amount is given bydiscount, where they will be givendiscountpercent off their subtotal. More formally, if their subtotal isbill, then they would actually paybill * ((100 - discount) / 100).Implement the
Cashierclass:Cashier(int n, int discount, int[] products, int[] prices)Initializes the object withn, thediscount, and theproductsand theirprices.double getBill(int[] product, int[] amount)Returns the final total of the bill with the discount applied (if any). Answers within10-5of the actual value will be accepted.
Example 1:
Input [“Cashier”,“getBill”,“getBill”,“getBill”,“getBill”,“getBill”,“getBill”,“getBill”]
[[3,50,[1,2,3,4,5,6,7],[100,200,300,400,300,200,100]],[[1,2],[1,2]],[[3,7],[10,10]],[[1,2,3,4,5,6,7],[1,1,1,1,1,1,1]],[[4],[10]],[[7,3],[10,10]],[[7,5,3,1,6,4,2],[10,10,10,9,9,9,7]],[[2,3,5],[5,3,2]]]
Output: [null,500.0,4000.0,800.0,4000.0,4000.0,7350.0,2500.0]
Explanation:
Cashier cashier = new Cashier(3,50,[1,2,3,4,5,6,7],[100,200,300,400,300,200,100]);
cashier.getBill([1,2],[1,2]); // return 500.0. 1st customer, no discount.
// bill = 1 * 100 + 2 * 200 = 500.
cashier.getBill([3,7],[10,10]); // return 4000.0. 2nd customer, no discount.
// bill = 10 * 300 + 10 * 100 = 4000.
cashier.getBill([1,2,3,4,5,6,7],[1,1,1,1,1,1,1]); // return 800.0. 3rd customer, 50% discount.
// Original bill = 1600
// Actual bill = 1600 * ((100 - 50) / 100) = 800.
cashier.getBill([4],[10]); // return 4000.0. 4th customer, no discount.
cashier.getBill([7,3],[10,10]); // return 4000.0. 5th customer, no discount.
cashier.getBill([7,5,3,1,6,4,2],[10,10,10,9,9,9,7]); // return 7350.0. 6th customer, 50% discount.
// Original bill = 14700, but with
// Actual bill = 14700 * ((100 - 50) / 100) = 7350.
cashier.getBill([2,3,5],[5,3,2]); // return 2500.0. 6th customer, no discount.
Constraints:
1 <= n <= 1040 <= discount <= 1001 <= products.length <= 200prices.length == products.length1 <= products[i] <= 2001 <= prices[i] <= 1000- The elements in
productsare unique. 1 <= product.length <= products.lengthamount.length == product.lengthproduct[j]exists inproducts.1 <= amount[j] <= 1000- The elements of
productare unique. - At most
1000calls will be made togetBill. - Answers within
10-5of the actual value will be accepted.
-
-
Constructor Summary
Constructors Constructor Description Cashier(int n, int discount, int[] products, int[] prices)
-