Menu
Coddy logo textTech

Rückblick – Lagerverwaltung

Teil des Abschnitts Logik & Ablauf der Kotlin-Journey von Coddy. Lektion 5 von 63.

challenge icon

Aufgabe

Mittel

Vervollständige stockDesk mit den Parametern stock: Map<String, Int>, item: String, delivery: Int, sold: Int. Kopiere den Bestand, füge eine nichtnegative Lieferung für den Artikel hinzu (bei fehlendem Artikel bedeutet dies null) und ziehe anschließend sold ab, wenn genügend Bestand verfügbar ist. Gib den endgültigen Bestand zurück oder -1, wenn der Verkauf nicht erfüllt werden kann. Lieferung und verkaufte Menge sind nichtnegativ.

Sofern oben keine strengeren Grenzen angegeben sind, enthalten Sammlungen auf jeder Ebene höchstens 100 Elemente, und ganzzahlige Argumente sowie ganzzahlige Sammlungswerte liegen zwischen -1000 und 1000. Zum Parsen bereitgestellter Text kann ungültige oder außerhalb des gültigen Bereichs liegende Darstellungen enthalten, wie beschrieben.

Gib einen Wert vom Typ Int zurück. Behalte den bereitgestellten Eingabe-/Ausgabecode bei. Er liest skalare Argumente jeweils in einer eigenen Zeile; eine Liste beginnt mit ihrer Anzahl, gefolgt von ihren Elementen, und eine Map beginnt mit der Anzahl ihrer Einträge, gefolgt von jedem Schlüssel und Wert. Verschachtelte Listen wiederholen für jede Zeile das Format aus Anzahl und Elementen. Der bereitgestellte main gibt den Rückgabewert gefolgt von genau einem Zeilenumbruch aus. Listen verwenden das standardmäßige Klammerformat von Kotlin; gib keine zusätzlichen Bezeichnungen aus.

Probier es selbst

fun stockDesk(stock: Map<String, Int>, item: String, delivery: Int, sold: Int): Int {
    // Schreibe deine Lösung hier.
    return 0
}
fun main() {
    val stockCount = readln().toInt()
    val stock = mutableMapOf<String, Int>()
    for (i0 in 0 until stockCount) {
        val stockKey = readln()
        val stockValue = readln().toInt()
        stock[stockKey] = stockValue
    }
    val item = readLine().orEmpty()
    val delivery = readln().toInt()
    val sold = readln().toInt()
    println(stockDesk(stock, item, delivery, sold))
}

Alle Lektionen in Logik & Ablauf

Übe selbstständig: Kotlin-Playground