শোর লিস্ট shows, ডিউরেশন লিস্ট durations, এবং k দেওয়া আছে। shows[i] এবং durations[i] হলো i-তম ব্যক্তির দেখা শো এবং তার ডিউরেশন। টপ-k সবচেয়ে বেশি দেখা শোর টোটাল ডিউরেশন বের করুন।
উদাহরণ
shows = ["The BGT", "Jack jumper", "The BGT", "Jokers Company", "Music magic"]
durations = [10, 8, 10, 18, 9], k = 2 → আউটপুট: 38
টপ-২: "Jokers Company" (১৮) + "The BGT" (১০+১০=২০) = ৩৮
এলগরিদম
- ডিকশনারি
dদিয়ে প্রতিটি শোর টোটাল ডিউরেশন জমান। - মানগুলো ডিসেন্ডিং সর্ট করুন।
- প্রথম
kটার যোগফল রিটার্ন করুন।
পাইথন কোড
from collections import defaultdict
def solve(shows, durations, k):
if not shows or not durations or not k:
return 0
d = defaultdict(int)
for i in range(len(shows)):
d[shows[i]] += durations[i]
l = list(d.values())
l.sort(reverse=True)
answer = sum(l[:k])
return answer
shows = ["The BGT", "Jack jumper", "The BGT", "Jokers Company", "Music magic"]
durations = [10, 8, 10, 18, 9]
k = 2
print(solve(shows, durations, k)) # আউটপুট: 38
ইনপুট / আউটপুট
["The BGT", "Jack jumper", "The BGT", "Jokers Company", "Music magic"], [10, 8, 10, 18, 9], 2 38