헷갈리는 2차원 배열을 정리한다.
우선 2차원 배열은 다차원 배열(multi-dimensional array)이다.
다차원 배열은 2차원 이상의 배열을 의미하는데, 배열 요소로 그 아래 차원의 배열들을 갖는다.
즉, 2차원 배열은 1차원 배열을 요소로 갖는다.
2차원 배열은 matrix(행렬)이라고 생각하면 된다.
2차원 배열은 다음과 같이 선언한다.
타입 배열이름[열의 길이][행의 길이];
public static void main(String[] args) {
int[][] array; // 2차원 배열의 선언
array = new int[2][3]; // 2차원 배열의 초기화
입력받으려면, 다음처럼 하면 된다.(완전한 코드는 아니다)
public static void main(String[] args) {
int[N][M] array;
// 열(세로, column)
for(int i = 0; i < N; i++){
// 행(가로, row)
for(int j = 0; j < M; j++){
array[i][j];
}
}
...
}
public static void main(String[] args) {
int[N][M] array;
// 열(세로, column)
for(int i = 0; i < N; i++){
// 행(가로, row)
for(int j = 0; j < M; j++){
System.out.println(array[i][j]);
}
System.out.println("\n");
}
...
}
알고리즘을 풀다보면 2차원 배열을 조작하는 경우가 있는데, 그 중 하나는 지도다.(지도를 이야기한 이유는 방금 지도 문제 풀고와서ㅎ)
보통 (0,0)부터 초기화를 한다.
지도 같은 경우는 다음과 같이 (0,0)이 왼쪽 상단에 오고 오른쪽으로 갈 수록 행이, 아래로 갈 수록 열이 커진다는 것을 인식하자.
또 상황에 따라 배열을 구현할 수 있도록 훈련하자.
Reference