কম্পিউটার

পাইথনে 60 দ্বারা বিভাজ্য মোট সময়কাল সহ গানের জোড়া


ধরুন আমাদের কাছে গানের একটি তালিকা আছে, i-th গানের সময়কাল [i] সেকেন্ড। আমাদের এমন জোড়া গানের সংখ্যা খুঁজে বের করতে হবে যার জন্য সেকেন্ডে তাদের মোট সময় 60 দ্বারা বিভাজ্য।

তাই যদি টাইম অ্যারে [30, 20, 150, 100, 40] এর মত হয়, তাহলে উত্তর হবে 3। তিন জোড়া হবে (3, 150), (20, 100), (20, 40) সব ক্ষেত্রে। মোট সময়কাল 60 দ্বারা বিভাজ্য।

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

  • অবশিষ্ট সঞ্চয় করার জন্য একটি ম্যাপ রেম নিন। উত্তর সেট করুন :=0
  • সমস্ত উপাদানের জন্য i সময়ে −
    • আমি যদি 0 এবং 0 দ্বারা বিভাজ্য হয় rem, তাহলে ans :=ans + rem[0]
    • অন্যথায় যখন 60 – (i mod 60), rem এ, তারপর ans :=ans + rem[60 – (i mod 60)]
    • যদি rem-এ i mod 60 হয়, তাহলে rem[i mod 60] :=rem[i mod 60] + 1
    • অন্যথায় rem[i mod 60] :=1
  • উত্তরগুলি ফেরত দিন

উদাহরণ

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

class Solution(object):
   def numPairsDivisibleBy60(self, time):
      ans = 0
      remainder = {}
      for i in time:
         if i % 60 == 0 and 0 in remainder:
            ans += remainder[0]
         elif 60 - (i%60) in remainder:
            ans += remainder[60 - (i%60)]
         if i % 60 in remainder:
            remainder[i%60]+=1
         else:
            remainder[i%60]=1
      return ans
ob1 = Solution()
print(ob1.numPairsDivisibleBy60([30,20,150,100,40]))

ইনপুট

[30,20,150,100,40]

আউটপুট

3

  1. Python - PyGame এর সাথে ছবি প্রদর্শন করুন

  2. পাইথনে একক-সারি কীবোর্ড

  3. পাইথনে ভেরিয়েবলের সুযোগ

  4. উদাহরণ সহ পাইথনে Timeit?