Pythonを使用して配列ゲームの勝者を見つけるプログラム
arrという配列があり、これには一意の要素が含まれており、別の値kもあるとします。ここで、配列の最初の2つの要素を取得するゲームについて考えてみます。各ターンで、arr[0]とarr[1]を比較します。大きい方の値が優先され、位置0に留まり、小さい方の値が配列の最後に移動します。このゲームは、値がk回連続で勝ったときに終了します。アレイから勝者を見つける必要があります。
したがって、入力がarr =[1,5,6,3,4,2]で、k =3の場合、出力は6になります。
-
ラウンド1、arr =[1,5,6,3,4,2]、勝者5、5の勝ち数は1です
-
ラウンド2、arr =[5,6,3,4,2,1]、勝者6、6の勝ち数は1です
-
ラウンド3、arr =[6,3,4,2,1,5]、勝者6、6の勝ち数は2です
-
ラウンド3、arr =[6,4,2,1,5,3]、勝者6、6の勝ち数は3です
つまり、3回勝ったので勝者は6です(k =3)
これを解決するには、次の手順に従います-
-
l:=arrのサイズ
-
前:=arr [0]
-
カウント:=0
-
1からl-1の範囲のiの場合、実行
-
prev> arr [i]の場合、
-
count:=count + 1
-
-
それ以外の場合
-
前:=arr [i]
-
カウント:=1
-
-
countがkと同じ場合、
-
前に戻る
-
-
-
前に戻る
理解を深めるために、次の実装を見てみましょう-
例
def solve(arr, k): l = len(arr) prev = arr[0] count = 0 for i in range(1, l): if prev > arr[i]: count+=1 else: prev = arr[i] count = 1 if count == k: return prev return prev arr = [1,5,6,3,4,2] k = 3 print(solve(arr, k))
入力
[1,5,6,3,4,2], 3
出力
6
-
配列内の反転をカウントするPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが表示されます。必要な反転をカウントして表示する必要があります。 反転カウントは、配列をソートするために必要なステップ数をカウントすることによって取得されます。 次に、以下の実装のソリューションを見てみましょう- 例 # count def InvCount(arr, n): inv_count = 0 for i in range(n): for j in range(i + 1, n):
-
配列の合計を見つけるPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列が与えられた場合、与えられた配列の合計を計算する必要があります。 ここでは、ブルートフォースアプローチに従うことができます。つまり、リストをトラバースし、各要素を空の合計変数に追加します。最後に、合計の値を表示します。 以下で説明するように、組み込みの合計関数を使用して別のアプローチを実行することもできます。 例 # main arr = [1,2,3,4,5] ans = sum(arr,n) print ('Sum of the array is '