Menu
Coddy logo textTech

3차원 배열과 그 이상

Coddy Java 여정의 논리와 흐름 섹션에 포함된 레슨. 59개 중 7번째.

2D 배열(배열의 배열)을 만들 수 있는 것처럼, 3D 배열(배열의 배열의 배열), 4D 배열 등을 만들 수 있습니다. 이러한 배열을 다차원 배열이라고 합니다.

3D array는 서로 위에 쌓인 2D array의 모음으로 시각화할 수 있으며, 큐브와 유사한 구조를 형성합니다. 3D array의 각 요소는 세 개의 인덱스를 사용하여 액세스합니다. 하나는 depth(어떤 2D array인지)를 위한 인덱스이고, 하나는 행을 위한 인덱스이며, 하나는 열을 위한 인덱스입니다.

Java에서 3D array를 선언하고 초기화하는 방법은 다음과 같습니다:

data_type[][][] array_name = new data_type[depth][rows][columns];
  • data_type: 배열에 저장될 요소의 유형입니다.
  • array_name: 배열의 이름입니다.
  • depth: 2D 배열의 개수(깊이).
  • rows: 각 2D 배열의 행 개수.
  • columns: 각 2D 배열의 열 개수.

예를 들어, 크기가 2x3x4인 정수 3D array를 생성하려면 다음과 같이 작성합니다:

int[][][] cube = new int[2][3][4];

3차원 array를 직접 초기화할 수도 있습니다:

int[][][] cube = {
    {
        {1, 2, 3, 4},
        {5, 6, 7, 8},
        {9, 10, 11, 12}
    },
    {
        {13, 14, 15, 16},
        {17, 18, 19, 20},
        {21, 22, 23, 24}
    }
};
challenge icon

챌린지

쉬움

depth, rows, cols라는 세 개의 정수 인수를 받는 프로그램을 작성하세요. 지정된 크기의 정수 3D 배열을 생성하고 배열의 각 요소를 깊이, 행, 열 인덱스의 곱으로 초기화해야 합니다(인덱스는 1부터 시작합니다).

예를 들어 [d][r][c] 위치의 요소는 (d + 1) * (r + 1) * (c + 1) 값을 가져야 합니다.

마지막으로 중첩 루프를 사용하여 결과로 생성된 3D 배열을 콘솔에 출력하세요. 출력은 다음과 같아야 합니다:

Depth 0:
1 2 3 4 
2 4 6 8 
3 6 9 12 
Depth 1:
2 4 6 8 
4 8 12 16 
6 12 18 24

직접 해보기

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int depth = scanner.nextInt();
        int rows = scanner.nextInt();
        int cols = scanner.nextInt();

        int[][][] array3D = new int[depth][rows][cols];
        // 아래에 코드를 작성하세요

        // 3D 배열을 출력합니다
        for (int d = 0; d < depth; d++) {
            System.out.println("Depth " + d + ":");
            for (int r = 0; r < rows; r++) {
                for (int c = 0; c < cols; c++) {
                    System.out.print(array3D[d][r][c] + " ");
                }
                System.out.println();
            }
        }
    }
}
quiz icon실력 점검

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

논리와 흐름의 모든 레슨

직접 연습해 보세요: 온라인 Java 컴파일러