白駿2798黒ジャッキ
4808 ワード
質問する
カジノで最も人気のあるゲームブラックジャックのルールはかなり簡単です.カードと21を超えない限度内で、カード和を最大限に拡大するゲームです.ブラックジャックはカジノごとに異なる規定を持っている.
韓国最高のブラックジャックの達人である金正仁(キム・ジョンイン)氏は、サングン、チャンヨン氏と新しいブラックジャックルールを制定し、ゲームを行う.
金正仁バージョンの黒いジャックには、カードごとに正の整数が書かれています.その後、ディーラーはすべてのN枚のカードを床に置いて、数字を表示します.そしてディーラーはデジタルMを叫んだ.
現在、プレイヤーは限られた時間内にN枚のカードの中から3枚のカードを選ばなければならない.ブラックジャック変形ゲームなので、プレイヤーが選択したカードの和はMを超えず、できるだけMに近づくようにします.
N枚のカードの数字が与えられている場合は、Mを超えずにMに最も近いカード3枚の合計を求めて出力してください.
入力
第1行は、カードの個数N(3≦N≦100)およびM(10≦M≦300000)を与える。2行目は、100000を超えない正の整数であるカードの数字を与えます。
3枚とMを超えないカードが見つかった場合のみ、入力として使用できます。
しゅつりょく
1行目は、Mに最も近い3枚のカードの合計を超えないように出力されます。
入力例1
5 21
5 6 7 8 9
サンプル出力1
21
入力例2
10 500
93 181 245 214 315 36 185 138 216 295
サンプル出力2
497
解法
BrootForsアルゴリズムを使用して、指定されたカードに対して可能なすべての値を作成します.
1行に入力したカードの数をリストに並べて並べ替えます.
3つの繰り返し文を使用して3つのカードの数を加算した値がMより大きい場合は、続行します.
以下の場合、以前に作成したものよりも高い値に更新されます.
コード#コード#
N, M = map(int, input().split())
card = list(map(int, input().split()))
card.sort()
result = 0
for i in range(0, N - 2):
for j in range(i + 1, N - 1):
for k in range(j + 1, N):
tmp = card[i] + card[j] + card[k]
if tmp > M:
continue
else:
result = max(result, tmp)
print(result)
白駿2798黒ジャッキ
Reference
この問題について(白駿2798黒ジャッキ), 我々は、より多くの情報をここで見つけました
https://velog.io/@mynote/백준-2798-블랙잭
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
BrootForsアルゴリズムを使用して、指定されたカードに対して可能なすべての値を作成します.
1行に入力したカードの数をリストに並べて並べ替えます.
3つの繰り返し文を使用して3つのカードの数を加算した値がMより大きい場合は、続行します.
以下の場合、以前に作成したものよりも高い値に更新されます.
コード#コード#
N, M = map(int, input().split())
card = list(map(int, input().split()))
card.sort()
result = 0
for i in range(0, N - 2):
for j in range(i + 1, N - 1):
for k in range(j + 1, N):
tmp = card[i] + card[j] + card[k]
if tmp > M:
continue
else:
result = max(result, tmp)
print(result)
白駿2798黒ジャッキReference
この問題について(白駿2798黒ジャッキ), 我々は、より多くの情報をここで見つけました https://velog.io/@mynote/백준-2798-블랙잭テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol