Menu
CoddyTech

Ringkasan: Papan Peringkat

Termasuk bagian Logika dan Alur dalam perjalanan Swift di Coddy. Pelajaran 32 dari 56.

challenge icon

Tantangan

Sedang

Kamu sedang membuat papan peringkat. Baca satu baris input: daftar entri name:score yang dipisahkan koma. Beberapa entri memiliki skor yang bukan bilangan bulat dan harus dilewati (gunakan compactMap).

Cetak tiga pemain teratas berdasarkan skor dari terbesar ke terkecil, satu per baris, dengan format:

<rank>. <name> - <score>

Peringkat dimulai dari 1. Jika skornya sama, urutkan berdasarkan nama secara alfabetis. Jika jumlah entri valid kurang dari tiga, cetak semuanya.

Setelah papan peringkat, cetak Avg: <n> dengan rata-rata bilangan bulat dari setiap skor valid (bulatkan ke arah nol, tanpa angka desimal). Jika tidak ada entri valid, cetak Avg: 0.

Untuk input alice:90,bob:bad,cara:85,dan:90,eve:70,fin:99, outputnya adalah:

1. fin - 99
2. alice - 90
3. dan - 90
Avg: 86

Coba sendiri

let entries = readLine()!.components(separatedBy: ",")

// TODO: gunakan compactMap untuk menghasilkan (name, score); urutkan berdasarkan score secara menurun, lalu berdasarkan name jika score sama;
// cetak 3 teratas; lalu cetak rata-rata semua score yang valid

Semua pelajaran di Logika dan Alur

Latihan sendiri: Playground Swift