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이 방식은 인덱스를 직접 추적하는 것보다 더 짧고 안전하며, 행의 끝을 벗어날 위험이 없습니다.
챌린지
쉬움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를 사용하여, 각 행의 평균보다 큰 셀을 출력하세요.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.