Menu
Coddy logo textTech

Recap - Configurable Score

Part of the Logic & Flow section of Coddy's Kotlin journey. Lesson 30 of 63.

challenge icon

Challenge

Medium

Complete scoreItems with parameters values: List<Int>, factor: Int, bonus: Int. Create a scoring lambda that transforms each value into value * factor + bonus. Apply it to each input value in order using a loop. Return all scores.

Unless stricter bounds are stated above, collections contain at most 100 elements at each level, and integer arguments and integer collection values are between -1000 and 1000. Text supplied for parsing can include invalid or out-of-range representations as described.

Return a value of type List<Int>. Keep the supplied input/output code. It reads scalar arguments one per line; a list starts with its count followed by its elements, and a map starts with its entry count followed by each key and value. Nested lists repeat the count-and-elements format for each row. The supplied main prints the return value followed by one newline. Lists use Kotlin's standard bracketed format; print no additional labels.

Try it yourself

fun scoreItems(values: List<Int>, factor: Int, bonus: Int): List<Int> {
    // Write your solution here.
    return emptyList()
}
fun main() {
    val valuesCount = readln().toInt()
    val values = mutableListOf<Int>()
    for (i0 in 0 until valuesCount) {
        val valuesItem = readln().toInt()
        values.add(valuesItem)
    }
    val factor = readln().toInt()
    val bonus = readln().toInt()
    println(scoreItems(values, factor, bonus))
}

All lessons in Logic & Flow

Practice on your own: Kotlin playground