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

Pythonで最大のアイスクリームバーを見つけるプログラム


n個の要素を持つ配列コストがあるとします。ここで、costs[i]はコインのi番目のアイスクリームバーの価格です。最初はc数のコインを使う必要があり、できるだけ多くのアイスクリームバーを購入したいと考えています。 cコインで購入できるアイスクリームバーの最大数を見つける必要があります。

したがって、入力がコスト=[3,1,4,5,2]、c =10のようである場合、インデックス0、1、2、4のアイスクリームバーを合計で購入できるため、出力は4になります。 3 + 1 + 4 + 2=10の価格。

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

  • リストのコストを並べ替える

  • i:=0

  • i<コストのサイズとc>=コスト[i]、実行

    • c:=c-コスト[i]

    • i:=i + 1

  • iを返す

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

def solve(costs, c):
   costs.sort()
   i=0
   while(i<len(costs) and c >= costs[i]):
      c = c-costs[i]
      i=i+1
   return i

costs = [3,1,4,5,2]
c = 10
print(solve(costs, c))

入力

[3,1,4,5,2], 10

出力

4

  1. Pythonの任意の場所に5を追加して最大数を見つけるプログラム

    数nがあるとすると、その数のどこかに5を挿入して、取得できる最大数を見つける必要があります。 したがって、入力がn =834の場合、出力は8534になります。 これを解決するには、次の手順に従います- 0の場合、 s:=n as string k:=空白の文字列 c:=False sの各文字iについて、実行します i <5でcがFalseの場合、 k:=k連結5連結i c:=True それ以外の場合 k:=k連結i kを整数として返す それ以外の場合 k:=空白の文字列 s:=| n

  2. Pythonで最大の建物の高さを見つけるプログラム

    値nと、制限と呼ばれるペアの別のリストがあるとします。都市にn棟の新しい建物を建てたいと思っています。ただし、制限はほとんどありません。私たちは一列に建てることができ、建物には1からnまでのラベルが付けられています。制限には2つのパラメーターがあるため、restrictions [i] =(id_i、max_height_i)は、id_iの高さがmax_height_i以下でなければならないことを示します。新しい建物の高さに関する市の制限は次のとおりです- 各建物の高さは0または正の値である必要があります。 最初の建物の高さは0でなければなりません。 隣接する2つの建物の高さ