2차원 배열 기초
Coddy Ruby 여정의 로직 및 흐름 섹션에 포함된 레슨 — 56개 중 10번째.
2차원 배열은 요소 자체가 배열인 배열입니다. 각 내부 배열은 그리드의 행을 나타냅니다.
cinema = [
[true, true], # 0행
[false, true] # 1행
]이것은 2행 2열로 구성된 2×2 그리드를 나타냅니다.
정수로 이루어진 3×4 그리드를 생성하려면:
matrix = [
[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]
]Array.new를 두 번 사용하여(한 번은 행을 위해, 한 번은 열을 위해) 기본값으로 채워진 그리드를 만들 수 있습니다:
grid = Array.new(3) { Array.new(4, 0) }
# 3개의 행, 4개의 열, 모두 0블록 형태({ Array.new(4, 0) })는 중요합니다. 이는 각 행에 대해 새로운 내부 배열을 생성하기 때문입니다. 그렇지 않으면 모든 행이 동일한 배열을 가리키게 됩니다.
챌린지
쉬움두 개의 정수(두 줄의 입력) rows와 cols를 읽으세요. 모든 셀의 값이 row * cols + col + 1과 같은 해당 크기의 2D 배열을 만드세요 (따라서 첫 번째 행은 1부터 시작하며, 그리드는 읽기 순서대로 채워집니다).
외부 배열에 inspect를 사용하여 그리드를 한 줄로 출력하세요.
입력이 2 다음에 3인 경우, 출력은 다음과 같습니다:
[[1, 2, 3], [4, 5, 6]]치트 시트
2차원 배열은 배열의 배열이며, 각 내부 배열은 하나의 행입니다:
matrix = [
[1, 2, 3],
[4, 5, 6]
]블록과 함께 Array.new를 사용하여 기본값으로 그리드를 생성합니다 (블록은 각 행이 별개의 배열임을 보장합니다):
grid = Array.new(3) { Array.new(4, 0) }
# 3개의 행, 4개의 열, 모두 0으로 채움직접 해보기
rows = gets.to_i
cols = gets.to_i
# TODO: 그리드를 빌드하고 inspect로 출력하기
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.