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

Pythonでの救助に必要なロケット船の最小数を見つけるためのプログラム


重量と呼ばれる数値のリストがあり、これは人々の重量を表しており、値の制限によって1隻のロケット船の重量制限が決まるとします。現在、各ロケット船は最大2人で乗車できます。全員を惑星に救出するのに必要なロケット船の最小数を見つける必要があります。

したがって、入力が重み=[300、400、300]、制限=600のような場合、出力は2になります。これは、1つのロケット船でそれぞれ300の重みを持つ2人を乗せ、もう1つを乗せるためです。体重が400人の人。

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

  • リストの重みを並べ替える

  • cnt:=0

  • 重みは空ではありませんが、実行してください

    • x:=重みから最後の要素を削除する

    • 重みが空でなく、weights [0] <=limit − xの場合、

      • 重みから最初の要素を削除する

    • cnt:=cnt + 1

  • cntを返す

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

例(Python)

class Solution:
def solve(self, weights, limit):
   weights.sort()
   cnt = 0
   while weights:
      x = weights.pop()
      if weights and weights[0] <= limit - x:
         weights.pop(0)
      cnt += 1
   return cnt
ob = Solution()
weights = [300, 400, 300]
limit = 600
print(ob.solve(weights, limit))

入力

[300, 400, 300], 600

出力

2

  1. 数の因子の最小合計を見つけるためのPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 入力された数値を指定して、指定された数値の因子の最小合計を求めます。 ここでは、すべての因子とそれに対応する合計を計算し、それらの中から最小値を見つけます。 したがって、数の積の最小合計を見つけるために、積の素因数の合計を見つけます。 これが問題の反復実装です- 例 #iterative approach def findMinSum(num):    sum_ = 0    # Find factors of number and add to the sum

  2. 数の最大の素因数を見つけるためのPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 正の整数nが与えられます。数の最大の素因数を見つける必要があります。 アプローチ 指定された数値を数値の約数で割って因数分解します。 最大素因数を更新し続けます。 例 import math def maxPrimeFactor(n):    # number must be even    while n % 2 == 0:       max_Prime = 2       n /= 1