[5/24]2309(7人の小人)
質問する
for文を使用して、配列に9つの数値を入力します. whileを使用してリストマージを行い、while文を使用してリストから7つのリストマージをランダムに抽出します. リストをソートし、順次出力します. の方が効率的かどうかは不明です. のfor文を使用して、和から2つ削除し、100を見つけてリストから削除します. のfor文から抜け出すには、2つのbreakを使用します. ランダムライブラリランダムをインポートします.ランダムに選べます.
マイコード
import random
arr = []
for _ in range(9):
arr.append(int(input()))
ssum = 0
while (ssum != 100):
newlist = []
while (len(newlist) != 7):
key = random.choice(arr)
if (key not in newlist):
newlist.append(key)
ssum = sum(newlist)
newlist.sort()
for i in newlist:
print(i)
に答える
効率的なコード
import random
arr = [20,7,23,19,10,15,25,8,13]
arr.sort()
result = sum(arr)
flag = True
for i in range(9):
for j in range(i+1, 9):
if (result - arr[i] - arr[j] == 100):
del arr[i]
del arr[j-1]
flag = False
break
if flag == False:
break
for i in arr:
print(i)
フィードバック
学識
Reference
この問題について([5/24]2309(7人の小人)), 我々は、より多くの情報をここで見つけました https://velog.io/@kj313903/524-2309-일곱-난쟁이テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol