白駿-2798(Python)-ブラックジャック
4671 ワード
ブラックジャッキ
質問する
カジノで最も人気のあるゲームブラックジャックのルールはかなり簡単です.カードと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枚のカードの合計を超えないように出力されます.
コード#コード#
解法
外部ライブラリを使用しないで問題を解く方法は、三重複文を使用します.三重の理由は問題の中で3枚のカードを引くことを提案して、徹底的な探求を行うためです.
1.入力が2行であるため、1行目にn,m入力を受け付け、カードで2行目に入力を受け付ける.
2.初期化結果と長さ、カードの和を三重複文でsum valueに格納します.反復文の範囲がそうなるのは,反復抽出がないからである.
3.問題には、3つのカードの合計がMより小さくなければならない条件があるため、if文を使用し、結果に最大値を格納して出力します.
に答える
n,m = list(map(int, input().split(' ')))
cards = list(map(int, input().split(' ')))
result = 0
length = len(cards)
# 3개만 뽑기 때문에 3중 반복문도 가능
for i in range (0, length):
for j in range(i+1, length):
for k in range (j+1, length):
sum_value = cards[i]+cards[j]+cards[k]
if sum_value <=m:
result = max(result, sum_value)
print(result)
Reference
この問題について(白駿-2798(Python)-ブラックジャック), 我々は、より多くの情報をここで見つけました https://velog.io/@junyp1/백준-2798-Python-블랙잭テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol