Menu
CoddyTech

Pola Umum Array 2D

Termasuk bagian Logika dan Alur dalam perjalanan Ruby di Coddy. Pelajaran 13 dari 56.

Beberapa operasi 2D-array sering muncul sehingga perlu dikenali namanya.

Jumlahkan setiap sel: ratakan grid menjadi array 1D dan panggil sum:

grid = [[1, 2], [3, 4]]
puts grid.flatten.sum  # 10

Diagonal utama: sel tempat indeks baris sama dengan indeks kolom (matrix[i][i]):

matrix = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
]

(0...matrix.length).each do |i|
  puts matrix[i][i]
end
# 1, 5, 9

Transpose: Ruby sudah menyediakan fitur ini. Baris menjadi kolom dan sebaliknya:

matrix.transpose
# [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

Mengetahui nama-nama ini membuatmu tidak perlu menulis ulang perulangan bersarang yang sama.

challenge icon

Tantangan

Mudah

Persegi matrix diberikan (n × n). Cetak tiga baris, semuanya berasal dari pola dalam teori:

  1. Anti-diagonal sum: <n>, jumlah sel dengan r + c == matrix.length - 1
  2. Column sums: [...], jumlah setiap kolom. Petunjuk: lakukan transpose terlebih dahulu, lalu petakan setiap baris menjadi jumlahnya, kemudian inspect
  3. Symmetric: true atau false: apakah matrix sama dengan hasil transpose-nya sendiri?

Untuk matrix default, output-nya adalah:

Anti-diagonal sum: 15
Column sums: [12, 15, 18]
Symmetric: false

Coba sendiri

matrix = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
]

# TODO: hitung jumlah diagonal sekunder, jumlah tiap kolom dengan transpose, dan periksa apakah matriks simetris
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Ruby online