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

পাইথনে শো লিস্ট এবং ডিউরেশন থেকে টপ-k সবচেয়ে বেশি দেখা শোর টোটাল ডিউরেশন বের করার প্রোগ্রাম

শোর লিস্ট 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" (১০+১০=২০) = ৩৮

এলগরিদম

  1. ডিকশনারি d দিয়ে প্রতিটি শোর টোটাল ডিউরেশন জমান।
  2. মানগুলো ডিসেন্ডিং সর্ট করুন।
  3. প্রথম 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
  1. পাইথনে পলিগনের ক্ষেত্রফল বের করার প্রোগ্রাম

  2. পাইথনে পলিগনের পরিসীমা বের করার প্রোগ্রাম

  3. সার্কুলার ট্র্যাকে সবচেয়ে বেশি ভিজিট করা সেক্টর বের করা

  4. পাইথনে শিপমেন্ট সম্পন্ন করার মোট খরচ বের করার প্রোগ্রাম