Postingan lainnya
bagaimana cara seleksi data dari list yang sudah ada ?
Jika Indonesia hanya bisa mengirim maksimal 14 pemain, buatlah sebuah program yang bisa menyeleksi pemain berdasarkan jumlah perolehan medali.
Ouput yang diharapkan:
Pemain yang layak bergabung dalam Tim Sudirman Cup Indonesia = [list pemain yg layak] Pemain yang kurang layak bergabung dalam Tim Sudirman Cup Indonesia = [list pemain yg kurang layak]
pemain_dan_medali = [
[7, "Ginting"], [5, "Jonathan C."],
[9," Hendra"], [9," Ahsan"],
[8, "Markus"], [8, "Kevin"],
[4, "Gregoria"], [6, "Praven"],
[6, "Melati"], [7, "Greysia"],
[7, "Apriani"], [5, "Putri"],
[5, "Rian"], [5, "Fajar"],
[2, "Rio"], [5,"Dewi]
]
1 Jawaban:
<pre>""" pertama buat fungsi 'sort' untuk menyutir perolehan mendali (semakin banyak mendali semakin layak) dari yg terbanyak ke yg paling sedikit.
Lalu 'slice' listnya dengan maximal jumlah pemain yg boleh dikirim, untuk mendapatkan list pemain yg layak dn yg kurang layak """
pemain_dan_medali = [ [7, "Ginting"], [5, "Jonathan C."], [9," Hendra"], [9," Ahsan"], [8, "Markus"], [8, "Kevin"], [4, "Gregoria"], [6, "Praven"], [6, "Melati"], [7, "Greysia"], [7, "Apriani"], [5, "Putri"], [5, "Rian"], [5, "Fajar"], [2, "Rio"], [5,"Dewi"] ]
def sort(list):
sort berdasarkan jumlah mendali dari yn paling banyak
disini saya pake 'selection-sort' algorithm
for i in range(1, len(list)): key = list[i] j = i - 1 while j >= 0 and key[0] > list[j][0]: list[j + 1] = list[j] j -= 1
list[j + 1] = key
sort(pemain_dan_medali)
def seleksi_pemain(list_pemain, max): return list_pemain[:max], list_pemain[max:]
pemain_layak, pemain_kurang_layak = seleksi_pemain(pemain_dan_medali, 14)
print("pemain yang layak: ", pemain_layak, "\n") print("pemain yang kurang layak: ", pemain_kurang_layak)</pre>