🚀 Java 배열의 차원 확장: 선 → 면 → 공간

1D
1차원 배열 (선 - Line)
// 1차원 배열 선언 및 초기화
int[] array1D = new int[5];

// 값 할당
array1D[0] = 10;
array1D[1] = 20;
array1D[2] = 30;
array1D[3] = 40;
array1D[4] = 50;

// 또는 한번에 초기화
int[] array1D = {10, 20, 30, 40, 50};

// 접근 방법
System.out.println(array1D[2]); // 30 출력

시각적 표현: 일직선상의 데이터

10
20
30
40
50
선택된 요소: 없음
특징: 하나의 인덱스로 접근 가능한 선형 구조
메모리: 연속된 메모리 공간에 일렬로 저장
용도: 리스트, 스택, 큐 등의 기본 자료구조
2D
2차원 배열 (면 - Plane)
// 2차원 배열 선언 및 초기화
int[][] array2D = new int[3][4];

// 값 할당
array2D[0][0] = 1; array2D[0][1] = 2;
array2D[0][2] = 3; array2D[0][3] = 4;

// 또는 한번에 초기화
int[][] array2D = {
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12}
};

// 접근 방법
System.out.println(array2D[1][2]); // 7 출력

시각적 표현: 행렬(표) 형태의 데이터

1
2
3
4
5
6
7
8
9
10
11
12
선택된 요소: 없음
특징: 두 개의 인덱스(행, 열)로 접근하는 2차원 구조
메모리: 행 단위로 연속된 메모리 블록들
용도: 행렬, 게임 보드, 이미지 픽셀, 표 데이터
3D
3차원 배열 (정육면체 - Cube)
// 정육면체 6면 배열 선언 및 초기화 (6x3x3)
int[][][] cube = new int[6][3][3]; // [면][행][열]

// 값 할당 예시
cube[0][1][1] = 5;   // 앞면 중앙
cube[4][1][1] = 41;  // 윗면 중앙
cube[5][2][2] = 54;  // 아랫면 우하단

// 또는 한번에 초기화 (54개 요소)
int[][][] cube = {
    { // 면 0: 앞면 (Front)
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}
    },
    { // 면 1: 뒷면 (Back)
        {10, 11, 12},
        {13, 14, 15},
        {16, 17, 18}
    },
    { // 면 2: 왼쪽 (Left)
        {19, 20, 21},
        {22, 23, 24},
        {25, 26, 27}
    },
    { // 면 3: 오른쪽 (Right)
        {28, 29, 30},
        {31, 32, 33},
        {34, 35, 36}
    },
    { // 면 4: 윗면 (Top)
        {37, 38, 39},
        {40, 41, 42},
        {43, 44, 45}
    },
    { // 면 5: 아랫면 (Bottom)
        {46, 47, 48},
        {49, 50, 51},
        {52, 53, 54}
    }
};

// 접근 방법 [면][행][열]
System.out.println(cube[0][1][1]); // 앞면 중앙: 5 출력
System.out.println(cube[4][1][1]); // 윗면 중앙: 41 출력

시각적 표현: 6면 정육면체 큐브 (마우스 조작 가능)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
🖱️ 드래그해서 회전! 요소를 클릭하면 좌표 표시
선택된 요소: 없음
앞면 (0) 뒷면 (1) 왼쪽 (2) 오른쪽 (3) 윗면 (4) 아랫면 (5)
특징: 세 개의 인덱스(면, 행, 열)로 접근하는 6면 큐브 구조 (54개 요소)
메모리: 6개 면으로 구성된 정육면체 3차원 배열
용도: 루빅스 큐브, 6면체 퍼즐, 3D 텍스처 매핑, 주사위 게임

🎯 핵심 개념 정리

차원의 확장: 선(1D) → 면(2D) → 정육면체(3D)

인덱스 개수: 1개 → 2개 → 3개

요소 개수: 5개 → 12개(3×4) → 54개(6×3×3)

메모리 구조: 연속 → 행렬 → 6면체 정육면체

활용 분야: 리스트 → 표/게임보드 → 루빅스큐브/6면체퍼즐/3D텍스처