Menu
CoddyTech

Tantangan, Audit Skor

Termasuk bagian Logika & Alur dalam perjalanan Kotlin di Coddy. Pelajaran 62 dari 63.

challenge icon

Tantangan

Ahli

Lengkapi scoreAudit dengan parameter rows: List<String>. Setiap baris memiliki format name:score. Abaikan baris kecuali jika pemisahan berdasarkan : menghasilkan tepat dua field, nama yang sudah di-trim cocok dengan [a-z]+, dan skor yang sudah di-trim dapat di-parse sebagai Int dari 0 hingga 100. Untuk nama yang berulang, simpan skor valid terbaru; baris tidak valid tidak pernah menggantikan skor sebelumnya. Kembalikan entri name=score berdasarkan skor menurun, dengan urutan alfabetis sebagai penentu jika skornya sama.

Kecuali jika batas yang lebih ketat disebutkan di atas, koleksi berisi paling banyak 100 elemen pada setiap tingkat, dan argumen integer serta nilai integer dalam koleksi berada di antara -1000 dan 1000. Teks yang diberikan untuk di-parse dapat mencakup representasi yang tidak valid atau di luar rentang seperti yang dijelaskan.

Kembalikan nilai bertipe List<String>. Pertahankan kode input/output yang disediakan. Kode tersebut membaca argumen skalar satu per baris; sebuah list dimulai dengan jumlah elemennya, lalu diikuti elemen-elemennya, dan sebuah map dimulai dengan jumlah entrinya, lalu diikuti setiap key dan value. List bersarang mengulangi format jumlah-elemen untuk setiap baris. main yang disediakan mencetak nilai yang dikembalikan, lalu satu baris baru. List menggunakan format standar Kotlin dengan tanda kurung siku; jangan mencetak label tambahan.

Coba sendiri

fun scoreAudit(rows: List<String>): List<String> {
    // Tulis solusimu di sini.
    return emptyList()
}
fun main() {
    val rowsCount = readln().toInt()
    val rows = mutableListOf<String>()
    for (i0 in 0 until rowsCount) {
        val rowsItem = readLine().orEmpty()
        rows.add(rowsItem)
    }
    println(scoreAudit(rows))
}

Semua pelajaran di Logika & Alur

Latihan sendiri: Playground Kotlin