Menu
Coddy logo textTech

סיכום – דלפק המניות

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Kotlin של Coddy. שיעור 5 מתוך 63.

challenge icon

אתגר

בינוני

השלם את stockDesk עם הפרמטרים stock: Map<String, Int>, item: String, delivery: Int, sold: Int. העתק את המלאי, הוסף את האספקה הלא-שלילית עבור הפריט (אם הוא חסר, הערך הוא אפס), ואז הפחת את הכמות שנמכרה אם יש מספיק מלאי. החזר את המלאי הסופי, או -1 אם אי אפשר למלא את ההזמנה. ערכי האספקה והכמות שנמכרה הם לא-שליליים.

אלא אם צוינו למעלה גבולות מחמירים יותר, אוספים מכילים לכל היותר 100 איברים בכל רמה, וארגומנטים של מספרים שלמים וערכי מספרים שלמים באוספים הם בין -1000 ל-1000. טקסט שסופק לניתוח עשוי לכלול ייצוגים לא תקינים או מחוץ לטווח, כמתואר.

החזר ערך מסוג Int. השאר את קוד הקלט/פלט שסופק. הוא קורא ארגומנטים סקלריים, אחד בכל שורה; רשימה מתחילה במספר האיברים שלה ואחריו האיברים, ומפה מתחילה במספר הרשומות שלה ואחריו כל מפתח וערך. רשימות מקוננות חוזרות על הפורמט של מספר איברים ואחריו איברים עבור כל שורה. ה-main שסופק מדפיס את הערך המוחזר ואחריו תו newline אחד. רשימות משתמשות בפורמט הסטנדרטי של 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 אונליין