ধরুন, nums নামক একটি অ্যারে আছে যাতে শুধু ১ এবং ২ থাকে। আমাদের যাচাই করতে হবে যে এই অ্যারেটি কি দুইটি অংশে ভাগ করা যায় যাতে দুটি অংশের যোগফল সমান হয়।
যেমন, ইনপুট nums = [1, 1, 2, 2, 2] হলে আউটপুট হবে True, কারণ এটি [1, 1, 2] (যোগফল ৪) এবং [2, 2] (যোগফল ৪) আকারে ভাগ করা যায়।
সমাধানের ধাপসমূহ
total = sum(nums)এবংone_count = nums.count(1)।- যদি
totalবিজোড় হয়, তবে False ফেরত দিন (কারণ বিজোড় সংখ্যা সমান দুই ভাগে ভাগ করা যায়না)। - যদি
(total // 2) % 2 == 0হয় (অর্থাৎ অর্ধেক যোগফল জোড় হয়), তবে True ফেরত দিন। - যদি
one_count > 0হয়, তবে True ফেরত দিন (কারণ ১ থাকলে সমান ভাগ সম্ভব)। - অন্যথায় False ফেরত দিন।
উদাহরণ কোড
def solve(nums):
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
return False
nums = [1, 1, 2, 2, 2]
print(solve(nums))
ইনপুট
[1, 1, 2, 2, 2]
আউটপুট
True