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

পাইথন প্রোগ্রাম - গুণিত সংখ্যাগুলোর সর্বাধিক যোগফল বের করুন

মনে করুন nums এবং multipliers দুটি লিস্ট। একটি অপারেশন বিবেচনা করুন যেখানে nums থেকে যেকোনো সংখ্যা এবং multipliers থেকে যেকোনো সংখ্যা সরিয়ে গুণ করুন। এই অপারেশনটি কোনো এক লিস্ট খালি না হওয়া পর্যন্ত চলবে, আমাদের গুণিত সংখ্যাগুলোর সর্বাধিক যোগফল বের করতে হবে।

ইনপুট nums = [-4, 4, 3], multipliers = [-2, 2] হলে আউটপুট হবে ১৬, কারণ -4 সাথে -2 এবং 4 সাথে 2 মিলিয়ে -4 * -2 + 4 * 2 পাই।

সমাধানের ধাপসমূহ:

  • nums লিস্ট সর্ট করুন
  • multipliers লিস্ট সর্ট করুন
  • res := 0
  • যদি len(nums) < len(multipliers): nums, multipliers = multipliers, nums
  • n := len(nums), m := len(multipliers)
  • i = 0 থেকে m-1 পর্যন্ত:
    • যদি multipliers[i] <= 0: res += nums[i] * multipliers[i]
    • অন্যথায়: res += multipliers[i] * nums[n - (m - i)]
  • res ফেরত দিন

উদাহরণ

বাস্তবায়ন:

def solve(nums, multipliers):
    nums.sort()
    multipliers.sort()
    res = 0
    if len(nums) < len(multipliers):
        nums, multipliers = multipliers, nums
    n, m = len(nums), len(multipliers)
    for i in range(m):
        if multipliers[i] <= 0:
            res += nums[i] * multipliers[i]
        else:
            res += multipliers[i] * nums[n - (m - i)]
    return res

nums = [-4, 4, 3]
multipliers = [-2, 2]
print(solve(nums, multipliers))

ইনপুট

[-4, 4, 3], [-2, 2]

আউটপুট

16
  1. পাইথনে সর্বোচ্চ সমষ্টিয়ুক্ত সন্নিবিষ্ট সাবলিস্টের সমষ্টি খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে প্রথম n বিজোড় সংখ্যার যোগফল খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে ১ থেকে N পর্যন্ত অনুপস্থিত সংখ্যাগুলো খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে তিনটি সংখ্যার মধ্যে সর্বোচ্চ মান বের করা