2798番:ブラックジャック


import sys
input = sys.stdin.readline

n,m = map(int,input().split())

card = list(map(int,input().split()))
l = len(card)
anw = 0

for i in range(l):
  for j in range(l):
    if i == j:
      continue
    for k in range(l):
      if k == i or k == j:
        continue
      sum = card[i] + card[j] + card[k]
      if sum > m:
        continue
      elif sum > anw:
        anw = sum
print(anw)
カードリストに作成できる3枚のカードの合計を確認するために,無知にも3回の複文を用いる方法を選択した.
今はほとんど慣れたsys...
n,mはカードの個数に近い数mを受け取る.
cardという名前のリストを作成し、2行目のカードに数字を加え、重複文の重複範囲を設定するためのカード長lを作成します.
anwはカードを3枚追加します.
同じカードをifに設定します.
再び、3枚札のとmを超えると捨てて、前のanwより大きいと、anwを現在の3枚に変えます.
これにより、カードリストの3枚の合計はmを超えず、mに等しいか、最も近いmになる可能性があります.
(모든 숏코딩은 볼 수 없도록 되어있습니다. 궁금하시분은 댓글 달아주시면 보내드리겠습니다.)
単純に問題を解くのではなく、アイデアを文字にしてアイデアを思いつき、ショートコードに挑戦しました.
短い符号化はあまりよくありませんが、私にとって、短い符号化は私に面白くて持続的な興味を感じさせます.