একাধিক স্ট্যাক দেওয়া আছে। যেকোনো স্ট্যাক থেকে যেকোনো সংখ্যক উপাদান পপ করা যায়। সব স্ট্যাকের যোগফল সমান হয় এমন সর্বোচ্চ যোগফল বের করতে হবে।
উদাহরণ: 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