Ringkasan: Papan Peringkat
Termasuk bagian Logika dan Alur dalam perjalanan Swift di Coddy. Pelajaran 32 dari 56.
Tantangan
SedangKamu 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: 86Coba 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
1Mendalami string
Jumlah dan indeksHuruf besar, huruf kecil, dan hapus spasiMencari dalam stringMemisahkan dan menggabungkanMengganti substringUlasan: Memeriksa nama pengguna4set
Membuat setGabungan dan IrisanSelisih dan Selisih SimetrisHimpunan Bagian dan Himpunan SupersetRingkasan: Filter Tag7Proyek: Pelacak Kebiasaan
Gambaran Umum ProyekTandai Selesai2Rentang dan Langkah
Rentang Tertutup vs Setengah TerbukaLangkahMetode RentangRentang dalam SwitchRangkuman: Kisi Kalender3dictionary
Mendeklarasikan dictionaryPencarian OpsionalMemperbarui dictionaryMenelusuri dictionaryMengelompokkan NilaiRangkuman: Inventaris6Fungsi Orde Tinggi Bagian 2
compactMapflatMapsorted(by:)Membangun PipelineRingkasan: Papan PeringkatLatihan sendiri: Playground Swift