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

Pythonでのボス戦


ファイターと呼ばれるバイナリリストと、ボスと呼ばれるバイナリリストの別のリストがあるとします。戦闘機リストでは、1は戦闘機を表しています。同様に、ボスリスト1ではボスを表します。その戦闘機は、ボスよりも多くの戦闘機が含まれている場合、ボスの列を打ち負かすことができます。敗北したボスの行を削除した新しいボスマトリックスを返す必要があります。

したがって、入力が戦闘機のようなものである場合=[0,1,1]

0 1 1
0 0 0
0 0 1
0 1 1
1 1 1

その場合、出力は次のようになります

0 1 1
1 1 1

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

  • fighter_cnt:=戦闘機のすべての要素の合計

  • 結果:=新しいリスト

  • ボスの各行について、実行します

    • fighter_cnt <=行の各要素の合計の場合、

      • 結果の最後に行を挿入

  • 結果を返す

理解を深めるために、次の実装を見てみましょう-

class Solution:
   def solve(self, fighters, bosses):
      fighter_cnt = sum(fighters)
      result = []
      for row in bosses:
         if fighter_cnt <= sum(row):
            result.append(row)
      return result
ob = Solution()
fighters = [0, 1, 1]
bosses = [[0, 0, 0], [0, 0, 1], [0, 1, 1], [1, 1, 1]]
print(ob.solve(fighters, bosses))

入力

[0, 1, 1], [[0, 0, 0], [0, 0, 1], [0, 1, 1], [1, 1, 1]]

出力

[[0, 1, 1], [1, 1, 1]]

  1. Pythonのissuperset()

    この記事では、Pythonでのissuperset()と、さまざまな分野でのその実装について学習します。 このメソッドは、セットBのすべての要素に引数として渡されるすべての要素セットAが含まれている場合はブール値Trueを返し、Aのすべての要素がBに存在しない場合はfalseを返します。 これは、BがAのスーパーセットである場合、それを意味します returns true; else False 例 いくつかの例を見てみましょう A = {'t','u','t','o','r','i',

  2. Pythonのアンダースコア(_)

    Pythonでは、シングルアンダースコア(_)を使用する場合もあれば、ダブルアンダースコア(__)を使用する場合もあります。 Pythonでは、アンダースコアを使用する次のケースがあります。 最後の式の値をインタープリターに格納する場合。 一部の値を無視したい場合。 変数または関数の宣言用。 数値の横方向の値の桁を区切るため。 「国際化(i18n)」または「ローカリゼーション(l10n)」機能としても使用されます。 今度はすべての場合のいくつかの例。 インタプリタで使用 Pythonインタープリターは、最後の式の値を「_」に格納します。 >>> 20 20 &