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

পাইথনে স্ট্যাক থেকে পপ করে সর্বোচ্চ সমান যোগফল নির্ণয়

একাধিক স্ট্যাক দেওয়া আছে। যেকোনো স্ট্যাক থেকে যেকোনো সংখ্যক উপাদান পপ করা যায়। সব স্ট্যাকের যোগফল সমান হয় এমন সর্বোচ্চ যোগফল বের করতে হবে।

উদাহরণ: stacks = [[3,4,5,6], [5,6,1,4,4], [10,2,2,2]] হলে আউটপুট ১২।

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

  • প্রতিটি স্ট্যাকের প্রিফিক্স যোগফল গণনা করুন এবং ফ্রিকোয়েন্সি ম্যাপে রাখুন
  • যে যোগফল সব স্ট্যাকে উপস্থিত (f >= stack count) এবং সর্বোচ্চ সেটি ফেরত দিন

উদাহরণ কোড

from collections import defaultdict
class Solution:
    def solve(self, stacks):
        sums = defaultdict(int)
        for stk in stacks:
            s = 0
            for n in stk:
                s += n
                sums[s] += 1
        ans = 0
        for s, f in sums.items():
            if f >= len(stacks) and s > ans:
                ans = s
        return ans

ob1 = Solution()
stacks = [
    [3, 4, 5, 6],
    [5, 6, 1, 4, 4],
    [10, 2, 2, 2]
]
print(ob1.solve(stacks))

ইনপুট

stacks = [[3,4,5,6], [5,6,1,4,4], [10,2,2,2]]

আউটপুট

12
  1. পাইথনে সব সম্ভাব্য বৈধ পথ থেকে সর্বোচ্চ স্কোর বের করার প্রোগ্রাম

  2. পাইথনে সারি ফ্লিপ করে বাইনারি ম্যাট্রিক্সের সর্বোচ্চ যোগফল বের করার প্রোগ্রাম

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

  4. পাইথনে স্ট্যাকের তালিকা থেকে k উপাদান পপ করে সর্বোচ্চ সমষ্টি খুঁজে বের করার প্রোগ্রাম