Menu
Coddy logo textTech

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) })는 중요합니다. 이는 각 행에 대해 새로운 내부 배열을 생성하기 때문입니다. 그렇지 않으면 모든 행이 동일한 배열을 가리키게 됩니다.

challenge icon

챌린지

쉬움

두 개의 정수(두 줄의 입력) rowscols를 읽으세요. 모든 셀의 값이 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로 출력하기
quiz icon실력 점검

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

로직 및 흐름의 모든 레슨