Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで合計期間が60で割り切れる曲のペア


曲のリストがあるとすると、i番目の曲の持続時間は[i]秒です。秒単位の合計時間が60で割り切れる曲のペアの数を見つける必要があります。

したがって、時間配列が[30、20、150、100、40]のような場合、答えは3になります。すべての場合で、3つのペアは(3、150)、(20、100)、(20、40)になります。合計時間は60で割り切れます。

これを解決するには、次の手順に従います-

  • 残りを保存するためにマップレムを取ります。 ans:=0
  • を設定します
  • 時間内のすべての要素iについて-
    • iがremで0と0で割り切れる場合、ans:=ans + rem [0]
    • それ以外の場合、レムで60 –(i mod 60)の場合、ans:=ans + rem [60 –(i mod 60)]
    • remでimod60の場合、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で画像を表示する

    Pygameは、ゲームやマルチメディアアプリケーションを作成するためのPython用のマルチメディアライブラリです。この記事では、pygameモジュールを使用して、pygameウィンドウでの高さ、幅、位置を考慮して、画面に画像をペイントする方法を説明します。 以下のプログラムでは、pygameモジュールを初期化してから、画像のモードとキャプションを定義します。次に、画像をロードして座標を定義します。 screen.blit関数は、whileループがゲームの終了をリッスンし続けている間、画面をペイントします。 例 import pygame pygame.init() w = 300; h =

  2. 例を使ってPythonでTimeit?

    Pythonには、Pythonコードの実行時間を測定する多くの方法があります。 1つの方法は、Python組み込みの時間モジュールを使用して、プログラムの実行の前後の時間を節約することです。 Python timeit 一部のプログラムが実行されている場合、そのコードを実行可能にするために、多くのプロセスもバックグラウンドで実行されます。時間モジュールはバックグラウンドプロセスの実行時間をカウントしませんが、正確な時間パフォーマンス測定が必要な場合は、時間モジュールがそれを実行します。 timeitモジュールはコードを約100万回(デフォルト値)実行し、そのコードの実行にかかった最小時