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

পাইথনে একটি সেটকে সমান যোগফল वाले দুটি সেটে ভাগ করার প্রোগ্রাম যেখানে প্রথম সেটের উপাদান দ্বিতীয় সেটের চেয়ে ছোট


মান ল করুন nums নামের একটি সংখ্যার তালিকা, আমাদের পরীক্ষা করতে হবে কি তালিকাটিকে A এবং B নামে দুটি গ্রুপে ভাগ করা যায় যাতে: A এবং B-এর যোগফল সমান হয়। এখানে A-এর প্রতিটি সংখ্যা B-এর প্রতিটি সংখ্যার চেয়ে কঠোরভাবে ছোট।

যদি ইনপুট হয় nums = [3, 4, 5, 12], তবে আউটপুট হবে True, কারণ আমরা A = [3,4,5] এবং B = [12] নিতে পারি এবং উভয়ের যোগফল ১২।

এটি সমাধান করতে আমরা নিম্নলিখিত ধাপগুলি অনুসরণ করব:

  • nums তালিকাটি সাজান।

  • total := nums-এ থাকা সমস্ত উপাদানের যোগফল।

  • s := 0, i := 0

  • যখন i < nums-এর আকার, তখন নিচের কাজ করুন:

    • n := nums[i]

    • যখন i < nums-এর আকার এবং nums[i] n-এর সমান, তখন:

      • s := s + nums[i]

      • i := i + 1

    • যদি s == total - s হয়, তবে True ফেরত দিন।

  • False ফেরত দিন।

বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশনটি দেখুন:

উদাহরণ

class Solution:    def solve(self, nums):       nums.sort()       total = sum(nums)       s = 0       i = 0       while i < len(nums):          n = nums[i]          while i < len(nums) and nums[i] == n:             s += nums[i]             i += 1          if s == total - s:             return True       return False ob = Solution() nums = [3, 4, 5, 12] print(ob.solve(nums))

ইনপুট

[3, 4, 5, 12]

আউটপুট

True

  1. পাইথনে তালিকা থেকে অ-সন্নিহিত উপাদানগুলোর সর্বোচ্চ সমষ্টি খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে প্রথম ও শেষ মান সমান সাবলিস্টের সংখ্যা খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে দেওয়া অপারেশন দিয়ে সব উপাদান সমান করার ন্যূনতম অপারেশন সংখ্যা খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে সঠিক পজিশনে থাকা এলিমেন্টের সংখ্যা গণনা করার প্রোগ্রাম