본문 바로가기

반응형

이번 강의에서는 2차원 배열을 값 목록으로 초기화하고,
각 반별 평균과 전체 평균을 계산하는 프로그램을 작성해봅니다.
2차원 배열은 행과 열 구조로 구성되며,
각 배열의 길이는 .length 속성으로 확인할 수 있습니다.


📌 예제 코드

public class MulltidimensionalArrayByValueListExample {
	public static void main(String[] args) {
		int scores[][] = {
			{ 80, 90, 96 },
			{ 76, 88 },
			{ 80, 90, 55 },
			{ 50, 60, 70, 80 }
		};

		System.out.println("1차원 배열 길이(전체 반의 수) : " + scores.length);
		for (int i = 0; i < scores.length; i++) {
			System.out.println("2차원 배열 길이( " + (i + 1) + "번째 반의 학생 수) : " + scores[i].length);
			for (int j = 0; j < scores[i].length; j++)
				System.out.println("scores[" + (i + 1) + "][" + (j + 1) + "] : " + scores[i][j]);
		}

		int sum = 0, allSum = 0, pCount = 0;
		for (int i = 0; i < scores.length; i++) {
			for (int j = 0; j < scores[i].length; j++, pCount++)
				sum += scores[i][j];
			System.out.println((i + 1) + "반의 평균 점수 : " + (double) sum / scores[i].length);
			allSum += sum;
			sum = 0;
		}
		System.out.println("전체 학생의 평균 : " + (double) allSum / pCount);
	}
}

💬 코드 설명

  • int[][] scores = { ... };
    → 2차원 배열 선언과 값 목록으로 초기화
    각 반마다 학생 수가 다름 → 가변 배열
  • scores.length
    → 반의 개수 (1차원 배열 길이)
  • scores[i].length
    → 해당 반의 학생 수 (2차원 배열의 각 행 길이)
  • sum += scores[i][j]
    → 한 반의 점수 합계 계산
  • (double) sum / scores[i].length
    → 각 반의 평균 계산
  • allSum, pCount
    → 전체 점수 합과 전체 학생 수를 누적 → 마지막에 전체 평균 계산

💻 실행 결과 (예시)

1차원 배열 길이(전체 반의 수) : 4
2차원 배열 길이( 1번째 반의 학생 수) : 3
scores[1][1] : 80
scores[1][2] : 90
scores[1][3] : 96
2차원 배열 길이( 2번째 반의 학생 수) : 2
scores[2][1] : 76
scores[2][2] : 88
...

1반의 평균 점수 : 88.66666666666667
2반의 평균 점수 : 82.0
3반의 평균 점수 : 75.0
4반의 평균 점수 : 65.0
전체 학생의 평균 : 77.875

📌 간단 정리

표현식 설명
int[][] arr = { ... } 2차원 배열 선언 및 초기화
arr.length 1차원 길이 (반의 수)
arr[i].length 2차원 길이 (학생 수)
arr[i][j] 개별 점수 접근

💡 포인트 정리

  • 2차원 배열은 [행][열] 구조, 각 행의 길이는 서로 다를 수 있음
  • 배열.length는 1차원 배열(반 수)
    배열[i].length는 각 행의 길이(학생 수)
  • 반복문 중첩 시 반복 기준을 .length로 설정하면 유지보수에 유리
  • 전체 평균 = 총합 ÷ 총 학생 수 → 따로 누적 변수 필요
댓글