Algorithm python)Backjun 2798ブラックジャック


問題リンク:https://www.acmicpc.net/problem/2798

ブルートフォース


野蛮人:無知、武力:無知の力で説明できる.
完全ナビゲーションアルゴリズム.すなわち,可能な限り要求条件を満たすすべての数のみを検索する.
このアルゴリズムの強みは例外なく,100%の確率で正解を出力する.
ソース
n, m = map(int, input().split())
num = list(map(int, input().split()))
l = len(num)
ans = 0
for i in range(0, l-2):
    for j in range(i+1, l-1):
        for k in range(j+1, l):
            if(num[i] + num[j] + num[k] > m):
                continue
            else:
                ans = max(ans ,num[i] + num[j] + num[k])

print(ans)
これは白駿のウェブサイトでの「段階的な解答」>「ブルートフォス」の質問です.
ブルートフォースがどういう意味なのか全く分かりません.
今のところ問題を見ると、どのように問題に近づくべきかよく理解できませんが、たゆまず練習すれば問題を解決できると思います.
整然とたゆまぬ努力を続ける.
三重for文を使用して、すべての状況の数を考慮します.
この問題により,python内蔵関数maxを用いて2つの数字を比較し,所望の最値に達することを学んだ.
(Python itertoolsライブラリを使用すると簡略化できます.)
from itertools import permutations

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

num = list(map(int, input().split()))
permutationArray = permutations(num, 3)
ans = 0
for i in permutationArray:
    if(m+1 > sum(i)):
        ans = max(ans, sum(i))
    
print(ans)