সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসাবে arr, arr নেয়। এই অ্যারে মূলত আমাদের কাছে বিভিন্ন ধরনের মুদ্রার মান উল্লেখ করে।
ফাংশনের দ্বিতীয় আর্গুমেন্ট হল একটি সংখ্যা, পরিমাণ, যা আমরা যে পরিমাণ যোগ করতে চাই তা নির্দিষ্ট করে। আমাদের ফাংশনটি কেবল সেই পরিমাণ পর্যন্ত যোগ করার জন্য প্রয়োজনীয় ন্যূনতম সংখ্যক কয়েন ফেরত দেবে।
যদি আমরা কোনভাবেই পরিমাণে পৌঁছাতে না পারি, তাহলে আমাদের -1 ফেরত দেওয়া উচিত।
উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয় −
const arr = [1, 2, 5]; const amount = 17;
তারপর আউটপুট −
হওয়া উচিতconst output = 4;
আউটপুট ব্যাখ্যা:
কারণ 5 এর 3টি কয়েন এবং 2 এর 1 কয়েন ব্যবহার করে পরিমাণটি অর্জন করা যেতে পারে।
উদাহরণ
এর জন্য কোড হবে −
const arr = [1, 2, 5]; const amount = 17; const minCoins = (arr = [], amount = 1) => { const changes = []; changes[0] = 0; while(changes.length <= amount){ let change = Math.pow(2, 31) - 1; for (let i = 0; i < arr.length; i++) { if (changes.length - arr[i] < 0){ continue; }; change = Math.min(change, 1 + changes[changes.length - arr[i]]); }; changes.push(change); }; return changes[amount] == Math.pow(2, 31) - 1 ? -1 : changes[amount]; }; console.log(minCoins(arr, amount));
আউটপুট
এবং কনসোলে আউটপুট হবে −
4