4차원(4D) 배열이란 3차원 배열들을 다시 하나로 묶어놓은 배열을 의미합니다. 즉, 2×2×3×2 형태의 배열은 총 24개의 정수를 저장할 수 있는 공간을 가지며, 네 개의 인덱스를 사용하여 각 요소에 접근합니다.
일반적으로 4차원 배열은 이미지 처리(색상·프레임), 과학 시뮬레이션, 텐서 연산 등 복잡한 데이터 구조가 필요한 분야에서 활용됩니다.
알고리즘
4차원 배열을 다루는 기본적인 절차는 다음과 같습니다.
시작. 변수를 선언한다. 배열 요소를 선언한다. 저장할 요소의 개수를 입력받는다. 각 요소의 값을 입력받는다. 배열에 저장된 요소들을 출력한다. 종료.
예제 코드
아래는 C++로 작성된 4차원 배열 예제입니다. int a[2][2][3][2] 배열을 선언하고, 중첩 반복문을 사용해 값을 입력받은 후 그대로 출력합니다.
#include<iostream>
using namespace std;
int main() {
int a[2][2][3][2];
cout << "Enter the elements of array: \n";
for(int i = 0; i < 2; ++i) {
for (int j = 0; j < 2; ++j) {
for(int k = 0; k < 3; ++k ) {
for(int l = 0; l < 2; ++l ) {
cin >> a[i][j][k][l];
}
}
}
}
cout<<"\narray elements are stored as:"<<endl;
for(int i = 0; i < 2; ++i) {
for (int j = 0; j < 2; ++j) {
for(int k = 0; k < 3; ++k) {
for(int l = 0; l < 2; ++l) {
cout << "a[" << i << "][" << j << "][" << k << "] [" <<l<<"]= " << a[i][j][k][l] << endl;
}
}
}
}
return 0;
}실행 결과
총 2×2×3×2 = 24개의 정수를 순서대로 입력하면, 아래와 같이 인덱스별로 저장된 값이 출력됩니다.
Enter the elements of array: 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 elements are stored as: a[0][0][0] [0]= 1 a[0][0][0] [1]= 2 a[0][0][1] [0]= 3 a[0][0][1] [1]= 4 a[0][0][2] [0]= 5 a[0][0][2] [1]= 6 a[0][1][0] [0]= 7 a[0][1][0] [1]= 8 a[0][1][1] [0]= 9 a[0][1][1] [1]= 10 a[0][1][2] [0]= 11 a[0][1][2] [1]= 12 a[1][0][0] [0]= 13 a[1][0][0] [1]= 14 a[1][0][1] [0]= 15 a[1][0][1] [1]= 16 a[1][0][2] [0]= 17 a[1][0][2] [1]= 18 a[1][1][0] [0]= 19 a[1][1][0] [1]= 20 a[1][1][1] [0]= 21 a[1][1][1] [1]= 22 a[1][1][2] [0]= 23 a[1][1][2] [1]= 24
핵심 포인트 정리
- 메모리 크기:
int a[2][2][3][2]는 정수형(int) 기준으로 24개 요소 × 4바이트 = 총 96바이트의 메모리를 차지합니다. - 인덱스 접근: 각 요소는
a[i][j][k][l]처럼 네 개의 첨자를 통해 접근하며, 모든 인덱스는 0부터 시작합니다. - 중첩 반복문: 4차원 배열을 순회하려면 반복문을 4번 중첩해야 하며, 바깥쪽 인덱스부터 안쪽 인덱스 순으로 탐색합니다.
- 주의 사항: 차원 수가 늘어날수록 필요한 메모리와 코드 복잡도가 급격히 증가하므로, 실제 프로젝트에서는 동적 할당이나 STL 컨테이너(
std::vector) 활용을 고려하는 것이 좋습니다.