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)
Reference
この問題について(Algorithm python)Backjun 2798ブラックジャック), 我々は、より多くの情報をここで見つけました
https://velog.io/@jeongdopark/Algorithm-python-백준-2798번
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
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)
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)
Reference
この問題について(Algorithm python)Backjun 2798ブラックジャック), 我々は、より多くの情報をここで見つけました https://velog.io/@jeongdopark/Algorithm-python-백준-2798번テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol