2차원 배열
자료형이 같은 1차원 배열의 모음이라고 한다.
앞선 1차원 배열에서 초기화나 선언은 비슷하다고 생각하면 된다.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
// 2차원 배열 - 배열안에 배열이 들어간다.
// 대괄호 2개를 찍는다.
//
// {
// {1,2,3},
// {1,2,3},
// {1,2,3}
// }
int[][] arr = { {1,2,3}, {4,5,6}, {7,8,9} };
System.out.println(Arrays.toString(arr[0]));
System.out.println(Arrays.toString(arr[1]));
System.out.println(Arrays.toString(arr[2]));
System.out.println("-----------------------");
System.out.println(arr[0][0]);
System.out.println(arr[1][2]);
System.out.println(arr[2][1]);
System.out.println("-----------------------");
// 값 변경
arr[0][0] = 100;
System.out.println(arr[0][0]);
}
}
대괄호 안에 2 개 이상의 대 괄호를 추가하여 사용
import java.util.Arrays;
public class Main{
public static void main(String[] args) {
int[] arr1 = {1,2,3};
int[] arr2 = {4,5,6};
int[] arr3 = {7,8,9,10};
int[][] a = {arr1, arr2, arr3};
for(int i = 0; i<a.length; i++) {
for(int j=0; j<a[i].length; j++) {
System.out.print(a[i][j] + " ");
}
}
System.out.println();
System.out.println("=============================");
int[][] b = new int[3][4];
int x = 0;
for(int i = 0; i < b.length; i++) {
for(int j=0; j < b[i].length; j++) {
b[i][j] = 1+x++;
System.out.print(b[i][j] + " ");
}
}
}
}
3개의 배열은 각 기 따로 선언 하고
다차원배열 변수에 해당 변수들을 추가해도 된다.
System.out.println("=============================") 구문을 기준으로
위는 서로 다른 배열을 다차원배열의 인덱스로 설정하고 설정한 다차원 배열의 인덱스를 출력하는 방법입니다.
아래는 크기가 주어진 다차원 배열 내에 1~12까지의 값을 추가하여 출력하는 방법입니다.
예제 : 주어진 격자판(배열)에 쓰인 수 중 최댓값을 구하시오.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[][] a = new int[9][9];
int max = a[0][0];
int c = 0;
int d = 0;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
a[i][j] = sc.nextInt();
if (a[i][j] >= max) {
max = a[i][j];
c = i+1;
d = j+1;
}
}
}
System.out.println(max);
System.out.println(c + " " + d);
}
}
결과값은 가장 큰 수를 출력하고, 아래에는 그 값의 행과 열을 출력한다.
- 크기가 81인 다차원 배열
- 초기 최대값은 맨 처음 수로 저장해준다.
- 행과 열의 위치를 확인할 변수 두 개를 선언
- 중복 반복문을 사용하여, i의 값은 행을 j의 값을 이용해 열을 출력할 수 있도록 한다.
- 다차원 배열과 초깃값을 비교하여, 다차원배열의 특정 값이 더 크다면, 초기값으로 새로 저장한다.
- 끝까지 반복을 하는 동안, 행과 열의 위치에 해당하는 값에 i와 j를 더할 때마다
- 해당 인덱스의 위치를 알 수 있다.
728x90
'Programming > Java' 카테고리의 다른 글
[JAVA] 스택(Stack)과 큐(Queue) (0) | 2023.11.07 |
---|---|
[JAVA] 매서드 (0) | 2023.11.06 |
[JAVA] 배열을 이용한 문제풀이 (2) | 2023.11.03 |
[JAVA] 정렬과 복사 (0) | 2023.11.02 |
[JAVA] 배열 연습 (0) | 2023.11.01 |