본문 바로가기
JAVA/기본 이론

7. 다차원 배열 (Multi Dimensional Array)

by D.O.T 2024. 2. 10.
2차원 배열이란?

우리는 2차원 배열에 익숙하다. 지금 이 글을 보는 화면도 x by y의 해상도를 가진 2차원 배열이다.

2차원 배열의 경우, 1차원 배열이랑 다를게 없어서 솔직히 뭘 써야 할 지 모르겠다.

조금만 생각을 바꾸면 되는게 2차원 배열이라서...

1차원 배열이 배열 형태를 띠는 것이 2차원 배열입니다.

 

어떻게 봐야할까요?

Cube

변수

한 블럭

큐브를 생각해봅시다. 우리 눈에는 3차원으로 보이는 해당 큐브는 한 블럭이 단위입니다.

컴퓨터에서도 똑같이 int cube 라고 하면 저 한 블럭은 int 정보를 갖게 되는 것이에요.

 

선형 배열 (1차원 배열)

세 블럭

그럼 배열은? 지갑을 설명했듯, 큐브에서도 보일 수 있는데요.

같은 '단위'를 기준으로 크기를 가진 것이 배열인데요.

해당 사진에서는 block이 3개 있다는 것을 알 수 있습니다.

이것은 1 by 3의 크기를 가지는 int[] cube = new int[3]; 과 같은 것이죠.

 

2차원 배열

세블럭이 세블럭

기본적으로 점, 1차원은 선, 2차원은 면의 모양을 띠고 있습니다.

우리는 1차원이 n개가 있으면 2차원으로 표현하는데요.

변수에서 1차원으로 묶을 때, []를 사용했죠? cube -> [] cube

1차원에서 2차원으로 묶을 때도 []를 사용합니다. [] cube -> [][] cube

 

다차원 배열

2차원 배열을 알게되었으면 다차원 배열을 이해하기는 더욱 쉬워집니다.

3차원 배열은 2차원 형태를 띠는 [][] cube를 묶는 것이므로 [][][] cube가 되겠죠?

4차원 배열은 3차원 형태를 띠는 [][][] cube를 묶는 것이므로 [][][][] cube가 됩니다.

즉, cube에 가까운 [] 일수록 1차원에 가깝습니다.

Cube와 같은 3by 3 배열을 생성해서 값을 확인해보면 1개의 면이 3개를 이루고 있음을 알 수 있습니다.

 

// 큐브를 생성
int[][][] cube = new int[3][3][3];

// 하나의 면 3차원의 간섭을 받기 전
cube[0][0][0] = 0;
cube[0][0][1] = 1;
cube[0][0][2] = 2;
cube[0][1][0] = 3;
cube[0][1][1] = 4;
cube[0][1][2] = 5;
cube[0][2][0] = 6;
cube[0][2][1] = 7;
cube[0][2][2] = 8;

// 두 번째 면의 시작, 차원이 하나 증가
cube[1][0][0] = 9;

// ... 생략

cube[2][2][2] = 26

 

https://www.notion.so/24jihwan/e710f65bdd964f848ea282dd10107c20

 

배열 | Notion

배열을 사용하는 방법

24jihwan.notion.site

 

'JAVA > 기본 이론' 카테고리의 다른 글

9. 반복문 - while 문, do while 문  (1) 2024.02.10
8. 반복문 - for 문  (1) 2024.02.10
6. 배열 (Array)  (1) 2024.02.10
5. 연산자(Operator)와 연산 순위  (1) 2024.02.10
3. 자료형(DataType)  (0) 2024.01.02