কম্পিউটার

পাইথনে K সর্বাধিক দেখা শোগুলির মোট সময়কাল খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের কাছে শো নামক স্ট্রিংগুলির তালিকার একটি তালিকা রয়েছে, এছাড়াও একটি পূর্ণসংখ্যার তালিকা রয়েছে যাকে বলা হয় সময়কাল, এবং আরেকটি মান k, এখানে দেখায়[i] এবং সময়কাল[i] একটি শো এবং এর সময়কাল ith ম্যান দেখেছে, আমাদের কাছে রয়েছে k সর্বাধিক দেখা শোগুলির মোট সময়কাল খুঁজে বের করতে৷

সুতরাং, যদি ইনপুটটি শো এর মত হয় =["The BGT", "Jack jumper", "The BGT", "Jokers Company", "Music magic"] সময়কাল =[10, 8, 10, 18, 9] k =2, তাহলে আউটপুট হবে 38, কারণ শীর্ষ 2টি সর্বাধিক দেখা শো হল "জোকার্স কোম্পানি" এবং "দ্য বিজিটি" এবং মোট সময়কাল 18 এবং 10 + 10 =20৷

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • যদি শো খালি হয় বা সময়কাল খালি হয় বা k 0 হয়, তাহলে

    • রিটার্ন 0

  • d :=একটি খালি অভিধান

  • আমি 0 থেকে শো এর আকারের মধ্যে, কর

    • d[দেখায়[i]] :=d[শো[i]] + সময়কাল[i]

  • l :=একটি নতুন তালিকা

  • প্রতিটি i এর জন্য d, do

    • l

      এর শেষে d[i] সন্নিবেশ করুন
  • তালিকাটিকে l বিপরীত ক্রমে সাজান

  • i :=0

  • উত্তর :=0

  • যখন আমি

    • উত্তর :=উত্তর + l[i]

    • i :=i + 1

  • প্রত্যাবর্তন উত্তর

উদাহরণ

আসুন আরও ভালভাবে বোঝার জন্য নিম্নলিখিত বাস্তবায়ন দেখি

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 = []
   for i in d:
      l.append(d[i])
   l.sort(reverse=True)
   i = 0
   answer = 0
   while i < k:
      answer += l[i]
      i += 1
   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))

ইনপুট

["The BGT", "Jack jumper", "The BGT", "Jokers Company", "Music magic"], [10, 8, 10, 18, 9], 2

আউটপুট

38

  1. পাইথনে বহুভুজের এলাকা খুঁজে বের করার জন্য প্রোগ্রাম

  2. পাইথনে বহুভুজের পরিধি খুঁজে বের করার প্রোগ্রাম

  3. পাইথন ব্যবহার করে একটি বৃত্তাকার ট্র্যাকে সর্বাধিক পরিদর্শন করা সেক্টর খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে সমস্ত চালান সম্পূর্ণ করার জন্য মোট খরচ খোঁজার প্রোগ্রাম