PATTERN RECOGNITION

Discount

📌 Source Code: hash/prg3-discount.js

function solution(want, number, discount) {
  const max = 10;
  let result = 0;
  let obj = {};

  for (let i = 0; i < want.length; i++) {
    obj[want[i]] = !!obj[want[i]] ? obj[want[i]] + number[i] : number[i];
  }

  for (let i = 0; i < discount.length; i++) {
    let cart = { ...obj };
    console.log("outer i", i);
    console.log("discount i", discount[i]);
    for (j = i; j < max + i; j++) {
      console.log(`
      inner j : ${j}
      ${discount[j]} :  ${cart[discount[j]]} left
      `);

      if (!cart[discount[j]]) {
        continue;
      }
      cart[discount[j]] = cart[discount[j]] - 1;
      console.log(`
      inner j after
      ${discount[j]} :  ${cart[discount[j]]}
      cart: ${Object.entries(cart)}
      `);
    }
    let cartResult = Object.values(cart);
    let cartAllZero = cartResult.every((item) => item <= 0);
    console.log(`
    ${i} index
    ====================
    cartResult : ${JSON.stringify(cartResult)} 
    cartAllZero : ${cartAllZero}
    `);
    if (cartAllZero) {
      result++;
    }
  }

  return result;
}

let test1W = ["banana", "apple", "rice", "pork", "pot"];
let test1N = [3, 2, 2, 2, 1];
let test1D = [
  "chicken",
  "apple",
  "apple",
  "banana",
  "rice",
  "apple",
  "pork",
  "banana",
  "pork",
  "rice",
  "pot",
  "banana",
  "apple",
  "banana",
];

console.log("result : ", solution(test1W, test1N, test1D));