কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে কার্ডগুলো গ্রুপে সাজানো


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি সংখ্যার অ্যারে arr প্রথম আর্গুমেন্ট এবং একটি সংখ্যা num দ্বিতীয় আর্গুমেন্ট হিসেবে নেবে।

অ্যারেতে থাকা সংখ্যাগুলো [১, ১৩] রেঞ্জে থাকে (লিমিটস ইনক্লুসিভ), যা প্লেয়িং কার্ডের ১-বেসড সূচক নির্দেশ করে।

ফাংশনটি নির্ণয় করবে কি কার্ডগুলোকে গ্রুপে সাজানো সম্ভব যাতে প্রতিটি গ্রুপের সাইজ num, এবং সেটি num টি последователь কার্ড নিয়ে গঠিত।

উদাহরণস্বরূপ, যদি ইনপুট হয় –

ইনপুট

const arr = [1, 4, 3, 2]; 
const num = 2;

আউটপুট

const output = 2;

আউটপুট ব্যাখ্যা

কারণ কার্ডগুলোকে এভাবে সাজানো যায় [1, 2], [3, 4]

উদাহরণ

নিচে কোডটি দেওয়া হল –

const arr = [1, 4, 3, 2]; 
const num = 2; 
const canRearrange = (arr = [], num = 1) => { 
  const find = (map, n, num) => { 
    let j = 0; 
    while (j < num) { 
      if (!map[n + j]) return false; 
      else map[n + j] -= 1; 
      j++; 
    } 
    return true; 
  }; 
  let map = {}; 
  arr.sort(function(a, b) { return a - b; }); 
  for (let n of arr) { 
    map[n] = map[n] ? map[n] + 1 : 1; 
  } 
  for (let n of arr) { 
    if (map[n] === 0 || find(map, n, num)) continue; 
    else return false; 
  } 
  return true; 
}; 
console.log(canRearrange(arr, num));

আউটপুট

true

  1. জাভাস্ক্রিপ্টে অ্যারে এলিমেন্ট পুনর্বিন্যাস করে ডাবল রিলেশন তৈরি করা

  2. জাভাস্ক্রিপ্টে অ্যারে থেকে ডেটা টাইপ অনুযায়ী উপাদান গোষ্ঠী করা

  3. জাভাস্ক্রিপ্টে অঙ্কগুলো পুনর্বিন্যাস করে সর্বোচ্চ সংখ্যা বের করা

  4. জাভাস্ক্রিপ্টে সংখ্যা n ভাগে বাঁটা যাতে পার্থক্য ন্যূনতম