行を走査する
CoddyのKotlinジャーニー「ロジックとフロー」セクションの一部。レッスン 17/63。
行には外側のループを、値には内側のループを使用します。各行を直接反復処理すると、長方形の幅を前提とせずに、異なる行の長さや空の行にも自然に対応できます。
mainの中で:
val rows = listOf(listOf(2, 3), emptyList(), listOf(4))
var total = 0
for (row in rows) {
for (value in row) total += value
}
println(total)空の行は何も加算しません。その他の行はそれぞれ5と4を加算します。
固定幅を仮定するのではなく、各行の実際の要素を反復処理します。
チャレンジ
中級パラメーター grid: List<List<Int>>を使用してgridTotalを完成させてください。すべての行のすべての値を合計します。空の行と空の外側リストも使用できます。
上記でより厳しい境界が指定されていない限り、各レベルのコレクションには最大100個の要素が含まれ、整数引数および整数コレクション値は-1000以上1000以下です。解析用に提供されるテキストには、説明されているように無効または範囲外の表現が含まれる場合があります。
型Intの値を返してください。提供された入力/出力コードはそのまま使用してください。スカラー引数は1行に1つずつ読み取られます。リストは要素数に続いて各要素が始まり、マップはエントリ数に続いて各キーと値が始まります。ネストされたリストでは、各行について要素数と要素の形式を繰り返します。提供されたmainは、戻り値の後に改行を1つ付けて出力します。リストにはKotlin標準の角括弧形式を使用し、追加のラベルは出力しないでください。
自分で試してみよう
fun gridTotal(grid: List<List<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)
}
println(gridTotal(grid))
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
自分で練習してみよう: Kotlinプレイグラウンド