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

পাইথনে চার তালিকা থেকে টার্গেট যোগফলযুক্ত চতুর্পদ সংখ্যা

A, B, C, D চারটি তালিকা এবং একটি টার্গেট মান দেওয়া আছে। A[i]+B[j]+C[k]+D[l] == target সিদ্ধ করে এমন স্বতন্ত্র চতুর্পদ (i,j,k,l) এর সংখ্যা বের করতে হবে।

উদাহরণ: A=[5,4,3], B=[8,4], C=[6,2], D=[4,10], target=23 হলে আউটপুট ৩। চতুর্পদগুলো: [5,8,6,4], [3,4,6,10], [3,8,2,10]।

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

  • A এবং B-এর সব যুগল যোগফলের ফ্রিকোয়েন্সি ম্যাপ m তৈরি করুন
  • C এবং D-এর সব যুগল যোগফল sum_cd বের করুন
  • যদি target - sum_cd ম্যাপে থাকে তবে কাউন্ট যোগ করুন
  • মোট কাউন্ট ফেরত দিন

উদাহরণ কোড

class Solution:
    def solve(self, A, B, C, D, target):
        count = 0
        from collections import defaultdict
        m = defaultdict(int)
        for i in A:
            for j in B:
                m[i + j] += 1
        for k in C:
            for z in D:
                if target - (k + z) in m:
                    count += m[target - (k + z)]
        return count

ob = Solution()
A = [5, 4, 3]
B = [8, 4]
C = [6, 2]
D = [4, 10]
target = 23
print(ob.solve(A, B, C, D, target))

ইনপুট

[5, 4, 3], [8, 4], [6, 2], [4, 10], 23

আউটপুট

3
  1. একটি সংখ্যার সম ফ্যাক্টরের যোগফল বের করার পাইথন প্রোগ্রাম

  2. পাইথনে একটি সংখ্যার বিষম গুণনীয়গুলোর যোগফল বের করার প্রোগ্রাম

  3. পাইথনে একটি সংখ্যার জোড় গুণনীয়গুলোর যোগফল বের করার প্রোগ্রাম

  4. পাইথনে একটি সংখ্যার গুণনীয়গুলোর ন্যূনতম যোগফল বের করার প্রোগ্রাম