Menu
Coddy logo textTech

2차원 배열 순회

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

2차원 배열의 모든 셀을 방문하려면 두 개의 반복문을 중첩합니다. 바깥쪽 루프는 행을 순회하고, 안쪽 루프는 해당 행의 열을 순회합니다.

가장 관용적인 Ruby 패턴은 each를 두 번 사용합니다:

grid = [
  [1, 2, 3],
  [4, 5, 6]
]

grid.each do |row|
  row.each do |cell|
    puts cell
  end
end
# 1, 2, 3, 4, 5, 6  (각각 별도의 줄에 출력됨)

예를 들어 각 셀에 레이블을 붙이기 위해 행과 열의 인덱스도 필요한 경우, 두 수준 모두에서 each_with_index를 사용하세요:

grid.each_with_index do |row, r|
  row.each_with_index do |cell, c|
    puts "(#{r},#{c}) = #{cell}"
  end
end

이 방식은 인덱스를 직접 추적하는 것보다 더 짧고 안전하며, 행의 끝을 벗어날 위험이 없습니다.

challenge icon

챌린지

쉬움

2D 배열 grid가 주어집니다 (정수로 구성된 3행 × 3열).

각 행에 대해, 해당 행의 평균보다 엄격히 큰(strictly greater) 값을 가진 모든 셀을 찾으세요. 그러한 각 셀을 다음 형식으로 한 줄씩 출력하세요:

(r,c) = value

중첩된 each_with_index를 사용하세요. 각 행의 임계값이 독립적이도록 바깥쪽 루프 내부에서 평균을 계산하세요.

기본 그리드에서 행의 평균을 넘는 셀은 다음과 같습니다:

(0,1) = 8
(1,2) = 9
(2,0) = 6
(2,1) = 7

치트 시트

2차원 배열의 모든 셀을 반복하려면 두 개의 each 호출을 중첩하십시오:

grid.each do |row|
  row.each do |cell|
    puts cell
  end
end

행과 열의 인덱스에도 접근하려면 두 수준 모두에서 each_with_index를 사용하십시오:

grid.each_with_index do |row, r|
  row.each_with_index do |cell, c|
    puts "(#{r},#{c}) = #{cell}"
  end
end

직접 해보기

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

# TODO: 중첩된 each_with_index를 사용하여, 각 행의 평균보다 큰 셀을 출력하세요.
quiz icon실력 점검

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

로직 및 흐름의 모든 레슨