Menu
Coddy logo textTech

סיכום – השורה התקינה הראשונה

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

challenge icon

אתגר

בינוני

השלם את firstValidRow באמצעות הפרמטרים grid: List<List<Int>>, minimumTotal: Int. החזר את האינדקס של השורה הראשונה שאינה מכילה ערכים שליליים וסכומה לפחות minimumTotal. לשורות ריקות יש סכום אפס והן אינן מכילות ערכים שליליים. החזר ‎-1 אם אין שורה מתאימה.

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

החזר ערך מטיפוס Int. השאר את קוד הקלט/פלט שסופק. הוא קורא ארגומנטים סקלריים, אחד בכל שורה; רשימה מתחילה במספר האיברים שלה ולאחריו האיברים, ומפה מתחילה במספר הרשומות שלה ולאחריו כל מפתח וערך. רשימות מקוננות חוזרות על תבנית מספר האיברים והאיברים עבור כל שורה. הפונקציה main שסופקה מדפיסה את הערך המוחזר ואחריו תו newline אחד. רשימות משתמשות בתבנית הסטנדרטית של Kotlin עם סוגריים מרובעים; אל תדפיס תוויות נוספות.

נסו בעצמכם

fun firstValidRow(grid: List<List<Int>>, minimumTotal: Int): Int {
    // כתבו כאן את הפתרון שלכם.
    return 0
}
fun main() {
    val gridCount = readln().toInt()
    val grid = mutableListOf<List<Int>>()
    for (i0 in 0 until gridCount) {
        val gridItemCount = readln().toInt()
        val gridItem = mutableListOf<Int>()
        for (i1 in 0 until gridItemCount) {
            val gridItemItem = readln().toInt()
            gridItem.add(gridItemItem)
        }
        grid.add(gridItem)
    }
    val minimumTotal = readln().toInt()
    println(firstValidRow(grid, minimumTotal))
}

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: Kotlin אונליין