더북(TheBook)

7.3 배열의 확장: 2차원 배열

앞서 시은이 반인 1반 학생들의 키를 배열 변수를 이용하여 효율적으로 저장하였습니다. 이를 확장하여 시은이네 옆 반인 2반부터 3반까지 학생들의 몸무게 정보도 저장해 볼까요? 물론 배열을 사용하며, 설명의 편의를 위해 각 반의 학생 수는 5명으로 제한하겠습니다.

int class1[5]; // 1반, 1번부터 5번까지의 몸무게 정보
int class2[5]; // 2반, 1번부터 5번까지의 몸무게 정보
int class3[5]; // 3반, 1번부터 5번까지의 몸무게 정보

이렇게 3개 반에 대해, 반마다 5명, 즉 총 15명 학생들의 몸무게 정보를 3개의 배열을 이용하여 저장하였습니다. 그런데 배열 변수를 사용하고 있는데도 다시 배열을 써야 할 것 같은 생각이 듭니다. 이유가 무엇일까요?

각 반의 배열들이 서로 떨어져서 저장되고 있기 때문입니다. 같은 학교, 같은 학년이라면 각 반 학생들의 몸무게 정보는 하나의 그룹으로 저장되는 것이 더 효율적입니다. 배열을 사용해서 저장했지만 또다시 배열을 사용하기 이전의 문제로 돌아갔네요.

이 문제를 해결하려면 2차원 배열이 필요합니다. 1학년 반은 총 3개이며, 각 반의 학생이 5명이면 다음과 같이 2차원 배열을 선언할 수 있습니다.

int ourclass[3][5]; // 2차원 배열 선언
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.