Menu
Coddy logo textTech

일반적인 2차원 패턴

Coddy Ruby 여정의 로직 및 흐름 섹션에 포함된 레슨. 56개 중 13번째.

일부 2D 배열 연산은 너무 자주 사용되므로 이름을 알아둘 가치가 있습니다.

모든 셀의 합: grid를 1D 배열로 flatten하고 sum을 호출하세요:

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

주대각선: 행 인덱스가 열 인덱스와 같은 셀(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에는 이 기능이 내장되어 있습니다. 행이 열로, 열이 행으로 바뀝니다:

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

이러한 이름을 알고 있으면 동일한 중첩 루프를 다시 작성하지 않아도 됩니다.

challenge icon

챌린지

쉬움

정사각형 matrix가 주어진다(n × n). 이론의 패턴에서 도출된 세 줄을 출력하라:

  1. Anti-diagonal sum: <n>, r + c == matrix.length - 1인 셀의 합
  2. Column sums: [...], 각 column의 합. 힌트: 먼저 transpose한 다음 각 행을 해당 sum으로 매핑하고, 그다음 inspect하라
  3. Symmetric: true 또는 false: matrix가 자신의 transpose와 같은가?

기본 matrix의 출력은 다음과 같다:

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

직접 해보기

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

# TODO: anti-diagonal sum, column sums via transpose, symmetric check
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

로직 및 흐름의 모든 레슨

직접 연습해 보세요: 온라인 Ruby 컴파일러