2차원 배열이란?
우리는 2차원 배열에 익숙하다. 지금 이 글을 보는 화면도 x by y의 해상도를 가진 2차원 배열이다.
2차원 배열의 경우, 1차원 배열이랑 다를게 없어서 솔직히 뭘 써야 할 지 모르겠다.
조금만 생각을 바꾸면 되는게 2차원 배열이라서...
1차원 배열이 배열 형태를 띠는 것이 2차원 배열입니다.
어떻게 봐야할까요?
변수
큐브를 생각해봅시다. 우리 눈에는 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
'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 |