সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি সংখ্যা অ্যারে নেবে। ফাংশনটি ইনপুট অ্যারে-এর ভিত্তিতে একটি নতুন অ্যারে তৈরি করবে, যেখানে প্রতিটি এলিমেন্ট হবে মূল অ্যারে-এ সেই পজিশনের এলিমেন্টের ডানে কতগুলো ছোট এলিমেন্ট আছে।
উদাহরণস্বরূপ, ইনপুট যদি হয় –
const arr = [4, 7, 1, 4, 7, 5, 3, 8, 9];
তবে আউটপুট হবে –
const output = [2, 4, 0, 1, 2, 1, 0, 0, 0];
আউটপুট ব্যাখ্যা:
কারণ ৪-এর ডানে ২টি ছোট সংখ্যা আছে (১ এবং ৩), ৭-এর ডানে ৪টি (১, ৪, ৫, ৩) ইত্যাদি।
উদাহরণ
কোডটি নিচের মতো –
const arr = [4, 7, 1, 4, 7, 5, 3, 8, 9]; const countSmaller = (array = [], num) => array.reduce((acc, val) => { if(val < num){ acc++; }; return acc; }, 0); const smallerArray = (arr = []) => { const res = []; for(let i = 0; i < arr.length; i++){ const el = arr[i]; res[i] = countSmaller(arr.slice(i, arr.length), el); }; return res; }; console.log(smallerArray(arr));আউটপুট
কনসোলে আউটপুট হবে –
[ 2, 4, 0, 1, 2, 1, 0, 0, 0 ]