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
-
Python-PyGameで画像を表示する
Pygameは、ゲームやマルチメディアアプリケーションを作成するためのPython用のマルチメディアライブラリです。この記事では、pygameモジュールを使用して、pygameウィンドウでの高さ、幅、位置を考慮して、画面に画像をペイントする方法を説明します。 以下のプログラムでは、pygameモジュールを初期化してから、画像のモードとキャプションを定義します。次に、画像をロードして座標を定義します。 screen.blit関数は、whileループがゲームの終了をリッスンし続けている間、画面をペイントします。 例 import pygame pygame.init() w = 300; h =
-
例を使ってPythonでTimeit?
Pythonには、Pythonコードの実行時間を測定する多くの方法があります。 1つの方法は、Python組み込みの時間モジュールを使用して、プログラムの実行の前後の時間を節約することです。 Python timeit 一部のプログラムが実行されている場合、そのコードを実行可能にするために、多くのプロセスもバックグラウンドで実行されます。時間モジュールはバックグラウンドプロセスの実行時間をカウントしませんが、正確な時間パフォーマンス測定が必要な場合は、時間モジュールがそれを実行します。 timeitモジュールはコードを約100万回(デフォルト値)実行し、そのコードの実行にかかった最小時