ধরুন আমাদের একটি অ্যারে সংখ্যা আছে যা শুধুমাত্র 1 এবং 2 সঞ্চয় করে। আমাদের পরীক্ষা করতে হবে যে অ্যারেটিকে দুটি ভিন্ন অংশে ভাগ করা যায় যেমন প্রতিটি অংশে উপাদানের যোগফল একই।
সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[1, 1, 2, 2, 2], তাহলে আউটপুটটি True হবে কারণ আমরা এই অ্যারেটিকে [1, 1, 2] এবং [2, 2] এর সমষ্টির মতো ভাগ করতে পারি প্রতিটি অংশ 4.
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- মোট :=0, one_count :=0
- মোট :=সংখ্যার সমস্ত উপাদানের যোগফল
- one_count :=সংখ্যায় 1s গণনা
- যদি মোট জোড় হয়, তাহলে
- মিথ্যে ফেরত দিন
- যদি (মোট / 2) এর পূর্ণসংখ্যা অংশ জোড় হয়, তাহলে
- সত্য ফেরান
- যদি one_count> 0 হয়, তাহলে
- সত্য ফেরান
- অন্যথায়,
- মিথ্যে ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
def solve(nums): total = 0 one_count = 0 total = sum(nums) one_count = nums.count(1) if total % 2: return False if (total // 2) % 2 == 0: return True if one_count > 0: return True else: return False nums = [1, 1, 2, 2, 2] print(solve(nums))
ইনপুট
[1, 1, 2, 2, 2]
আউটপুট
True