Menu
Coddy logo textTech

2차원 배열 요소 접근

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

2차원 배열에서 단일 셀을 읽거나 업데이트하려면 두 개의 인덱스 조회를 연결합니다. 첫 번째는 행을 선택하고, 두 번째는 열을 선택합니다.

matrix = [
  [10, 20, 30],
  [40, 50, 60],
  [70, 80, 90]
]

puts matrix[0][0]   # 10  (왼쪽 상단)
puts matrix[1][2]   # 60  (1행, 2열)
puts matrix[2][0]   # 70  (왼쪽 하단)

셀을 업데이트할 때는 왼쪽과 동일한 구문을 사용합니다:

matrix[0][1] = 99
puts matrix[0].inspect   # [10, 99, 30]

두 가지 유용한 형태 쿼리:

puts matrix.length         # 3 (행의 개수)
puts matrix[0].length      # 3 (0번 행의 열 개수)

인덱스는 0부터 시작하여 length - 1까지 이어집니다. 끝을 넘어가면 에러를 발생시키는 대신 nil을 반환합니다.

challenge icon

챌린지

초급

2차원 배열 matrix가 주어집니다. 세 개의 정수(세 줄) r1, c1, 그리고 v를 읽으세요. 그런 다음:

  1. matrix[r1][c1]의 값을 출력하세요
  2. matrix[r1][c1] = v로 설정하세요
  3. inspect를 사용하여 업데이트된 전체 matrix를 출력하세요

입력 1 / 2 / 99에 대한 출력은 다음과 같습니다:

60
[[10, 20, 30], [40, 50, 99], [70, 80, 90]]

치트 시트

연결된 인덱스 [row][col]을 사용하여 2D 배열의 셀에 액세스하고 업데이트합니다:

matrix = [
  [10, 20, 30],
  [40, 50, 60]
]

puts matrix[1][2]    # 60
matrix[1][2] = 99    # update cell
puts matrix.inspect  # [[10, 20, 30], [40, 50, 99]]

형태(Shape) 쿼리:

matrix.length      # number of rows
matrix[0].length   # number of columns in row 0

인덱스는 0부터 시작하며, 범위를 벗어난 액세스는 nil을 반환합니다.

직접 해보기

matrix = [
  [10, 20, 30],
  [40, 50, 60],
  [70, 80, 90]
]

r1 = gets.to_i
c1 = gets.to_i
v  = gets.to_i

# TODO: matrix[r1][c1]를 출력하고, v를 할당한 다음, 전체 행렬을 출력하세요
quiz icon실력 점검

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

로직 및 흐름의 모든 레슨