C#에서 3차원 배열은
[행, 열, 깊이]의 형태로 데이터를 저장하는 배열이다.
X(가로) × Y(세로) × Z(깊이) 형태로 공간을 표현할 수 있다.
int[,,] array3D = new int[2, 3, 4];
한 번에 값 초기화
int[,,] array3D =
{
{
{ 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10, 11, 12 }
},
{
{ 13, 14, 15, 16 },
{ 17, 18, 19, 20 },
{ 21, 22, 23, 24 }
}
};
[2,3,4] 구조로 2층의 행렬을 쌓은 형태array3D[0,0,0] = 1, array3D[1,2,3] = 24값 할당
array3D[0, 1, 2] = 42; // 1번째 층, 2번째 행, 3번째 열
값 출력
Console.WriteLine(array3D[0, 1, 2]); // 42 출력
for (int i = 0; i < array3D.GetLength(0); i++) // 층 반복
{
for (int j = 0; j < array3D.GetLength(1); j++) // 행 반복
{
for (int k = 0; k < array3D.GetLength(2); k++) // 열 반복
{
Console.Write($"array3D[{i},{j},{k}] = {array3D[i, j, k]} ");
}
Console.WriteLine();
}
Console.WriteLine();
}
// GetLength(0) → 1차원 크기(층 개수), GetLength(1) → 행 개수, GetLength(2) → 열 개수
// 배열 요소를 array3D[i, j, k]로 접근
// array3D[0,0,0] = 1 array3D[0,0,1] = 2 array3D[0,0,2] = 3 array3D[0,0,3] = 4
// array3D[0,1,0] = 5 array3D[0,1,1] = 6 array3D[0,1,2] = 7 array3D[0,1,3] = 8
// array3D[0,2,0] = 9 array3D[0,2,1] = 10 array3D[0,2,2] = 11 array3D[0,2,3] = 12
// array3D[1,0,0] = 13 array3D[1,0,1] = 14 array3D[1,0,2] = 15 array3D[1,0,3] = 16
// array3D[1,1,0] = 17 array3D[1,1,1] = 18 array3D[1,1,2] = 19 array3D[1,1,3] = 20
// array3D[1,2,0] = 21 array3D[1,2,1] = 22 array3D[1,2,2] = 23 array3D[1,2,3] = 24
3차원 배열
int[,,] array3D = new int[2, 3, 4]; // [층, 행, 열]
// 고정된 크기의 행렬 구조
가변 배열
int[][][] jaggedArray = new int[2][][];
jaggedArray[0] = new int[3][];
jaggedArray[1] = new int[2][];
jaggedArray[0][0] = new int[] { 1, 2 };
jaggedArray[0][1] = new int[] { 3, 4, 5 };
jaggedArray[0][2] = new int[] { 6 };
// 행과 열 크기가 유동적인 경우 Jagged Array 사용
// jaggedArray[0][1][2] = 5 처럼 접근
| 구분 | 설명 | 예제 |
|---|---|---|
| 3차원 배열 선언 | [층, 행, 열] 구조로 선언 | int[,,] array3D = new int[2,3,4]; |
| 값 저장 및 접근 | 인덱스로 접근 | array3D[0,1,2] = 42; |
| 배열 순회 | for 문으로 3중 반복 | array3D[i, j, k] |
| 가변 배열 (Jagged) | 행마다 열 개수가 다른 경우 | int[][][] jaggedArray = new int[2][][]; |