Menu
Coddy logo textTech

復習 - 株式デスク

CoddyのKotlinジャーニー「ロジックとフロー」セクションの一部。レッスン 5/63。

challenge icon

チャレンジ

中級

stockDeskを、パラメータstock: Map<String, Int>、item: String、delivery: Int、sold: Intで完成させてください。在庫をコピーし、itemの商品に0以上の入荷数を加算します(存在しない場合は0として扱います)。その後、在庫が十分にある場合に販売数を差し引いてください。最終的な在庫を返し、販売を実行できない場合は-1を返してください。deliveryとsoldは0以上です。

上記でより厳しい上限が指定されていない限り、コレクションは各レベルで最大100個の要素を含み、整数の引数および整数コレクションの値は-1000から1000の範囲です。解析対象として渡されるテキストには、説明されているように無効または範囲外の表現が含まれる場合があります。

型Intの値を返してください。提供された入出力コードはそのまま使用してください。スカラー引数は1行に1つずつ読み取られます。リストは個数の後に要素が続く形式で始まり、マップはエントリ数の後に各キーと値が続く形式で始まります。ネストされたリストでは、各行について個数と要素の形式が繰り返されます。提供されたmainは、戻り値の後に改行を1つ出力します。リストにはKotlin標準の角括弧形式を使用し、追加のラベルは出力しないでください。

自分で試してみよう

fun stockDesk(stock: Map<String, Int>, item: String, delivery: Int, sold: Int): Int {
    // ここに解答を書いてください。
    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))
}

ロジックとフローのすべてのレッスン

自分で練習してみよう: Kotlinプレイグラウンド