2차원 배열이란 배열의 요소로 1차원 배열을 가지는 배열이다.
1차원 배열의 배열 요소로 또 다른 1차원 배열을 사용하여 2차원 배열을 나타낼 수 있다.
따라서 자바에서 2차원 배열은 다음과 같은 문법으로 선언된다.
1. 타입[][] 배열이름;
2. 타입 배열이름[][];
3. 타입[] 배열이름[];
public class Java2DArray {
public static void main(String[] args) {
int[][] arr = new int[2][3];
int k = 10;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
arr[i][j] = k; // 인덱스를 이용한 초기화
k += 10;
}
}
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
10 20 30
40 50 60
import java.util.Scanner;
public class Java2DArray {
public static void main(String[] args)
{
int a[][] = new int[6][6];
// 문제에서 주어진대로 6x6 배열을 a라는 이름으로 선언한다.
int result = -63; //Integer.MIN_VALUE;
// 입력되는 int의 범위는 -9이상 9이하이고, 모래시계 모양으로 더해질 수 있는 합 중에서 만약 전부 -9인경우를 상정해 result에 담아주고 시작하자. (초기화를 0으로 할 수 없는 이유는 음수가 들어갈 수 있기 때문에 그렇다.)
try (Scanner scanner = new Scanner(System.in);)
{
for(int i = 0; i < 6; i++) // i는 행
{
for(int j = 0; j < 6; j++) // j는 열
{
a[i][j] = scanner.nextInt();
if (i > 1 && j > 1) // 모래시계가 工 모양으로 반복문을 돌게 되므로 i,j 모두 index 값이 1보다 커야 한다.
{
int sum =
a[i][j] // 工 안에 들어가는 7가지 수를 반복문을 돌려 더하면서 sum>result이면 sum을 result에 담아준다.
+ a[i][j-1]
+ a[i][j-2]
+ a[i-1][j-1]
+ a[i-2][j]
+ a[i-2][j-1]
+ a[i-2][j-2];
if (sum > result) {result = sum;}
}
}
}
}
System.out.println(maxSum);
}
}