3차원 배열과 그 이상
Coddy Java 여정의 논리와 흐름 섹션에 포함된 레슨 — 59개 중 7번째.
배열의 배열인 2D 배열을 만들 수 있듯이, 배열의 배열의 배열인 3D 배열, 4D 배열 등을 만들 수 있습니다. 이러한 배열들을 다차원 배열이라고 합니다.
3차원 배열은 서로 위에 쌓인 2차원 배열들의 집합으로 시각화할 수 있으며, 큐브 같은 구조를 형성합니다. 3차원 배열의 각 요소는 세 개의 인덱스를 사용하여 접근되며: 깊이(어느 2차원 배열인지)를 위한 하나, 행을 위한 하나, 그리고 열을 위한 하나입니다.
Java에서 3D 배열을 선언하고 초기화하는 방법은 다음과 같습니다:
data_type[][][] array_name = new data_type[depth][rows][columns];data_type: 배열이 저장할 요소의 타입입니다.array_name: 배열의 이름입니다.
depth: 2D 배열의 개수 (depth).rows: 각 2D 배열의 행 수.columns: 각 2D 배열의 열 수.
예를 들어, 2×3×4 크기의 정수형 3차원 배열을 생성하려면 다음과 같이 작성합니다:
int[][][] cube = new int[2][3][4];또한 3차원 배열을 직접 초기화할 수도 있습니다:
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}
}
};챌린지
쉬움세 개의 정수 인수인 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치트 시트
3차원 배열은 배열의 배열의 배열로, 깊이, 행, 열을 가진 큐브 같은 구조로 시각화됩니다.
선언 및 초기화:
data_type[][][] array_name = new data_type[depth][rows][columns];예제:
int[][][] cube = new int[2][3][4];직접 초기화:
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}
}
};요소는 세 개의 인덱스를 사용하여 접근합니다: array[depth][row][column]
직접 해보기
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];
// 여기에 코드를 작성하세요
// 3차원 배열 출력
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();
}
}
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.