주요 2차원 패턴
Coddy Ruby 여정의 로직 및 흐름 섹션에 포함된 레슨 — 56개 중 13번째.
일부 2차원 배열 연산은 매우 자주 나타나서 이름을 통해 알아둘 가치가 있습니다.
모든 셀 합산하기: 그리드를 1차원 배열로 평탄화하고 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]]이것들의 이름을 알고 있으면 동일한 중첩 루프를 반복해서 작성하는 수고를 덜 수 있습니다.
챌린지
쉬움정사각형 matrix (n × n)가 주어집니다. 이론의 패턴에서 파생된 세 줄을 출력하세요:
Anti-diagonal sum: <n>,r + c == matrix.length - 1인 셀들의 합계Column sums: [...], 각 열의 합계. 힌트: 먼저 transpose하고, 각 행을 그 합계로 map한 다음,inspect를 사용하세요Symmetric: true또는false: 행렬이 자신의 transpose와 같습니까?
기본 행렬에 대한 출력은 다음과 같습니다:
Anti-diagonal sum: 15
Column sums: [12, 15, 18]
Symmetric: false직접 해보기
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# TODO: 역대각선 합, transpose를 통한 열의 합, 대칭 확인
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.