2D Array - DS
- The 2D array is planned as matrices.
- It can be signified as the collection of rows and columns.
- Example of 2D arrays is a database table.
- It is used to implement a relational database.
Problem Statement based on 2D Array - DS
Let’s assume that you have a 2D array with dimensions 6*6. An hourglass in an array is defined as a portion shaped like this:
a b c
d
e f g
Assume that above hourglass will be replaced with number 2 and array will be full of zeros. Now, it may look like this:
2 2 2 0 0 0
0 2 0 0 0 0
2 2 2 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
2 2 2 2 2 0 2 0 0
2 0 0
2 2 2 2 2 0 2 0 0
it is the sum of all the numbers within it. The sum for the hourglasses above are 14, 8, and 4, respectively. The largest sum among the all will be the output. Therefore, sample-output will be 14. Since, in this problem, you have to print the largest sum among all the hourglasses in the array.
Example 2.
Input Format There will be exactly 6 lines of input, each containing 6 integers separated by spaces. Each integer will be between -9 and 9, inclusively. Output Format Print the answer to this problem on a single line. Sample Input
2 2 2 0 0 0
0 2 0 0 0 0
2 2 2 0 0 0
0 0 4 8 8 0
0 0 0 4 0 0
0 0 1 4 8 0
4 8 8
4
1 4 8
LET’S WE ARE USING JAVA FOR CREATING THE PROGRAM:-
import java.util.Scanner;
public class HourGlass {
//main method
from where program execution will start
public static void main(String[] args) {
//to get user
input
Scanner in = new Scanner(System.in);
//create
array 6*6 size
int arr[][] = new int[6][6];
//iterate the
for loop to store full array
for (int arr_i = 0; arr_i < 6; arr_i++) {
for (int arr_j = 0; arr_j < 6; arr_j++) {
arr[arr_i][arr_j] = in.nextInt();
}
}
//lets take
an count
int count = Integer.MIN_VALUE;
//create
logic using iterating array
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length; j++) {
//check array i and j places and ignore the logic
if (i >= arr.length - 2 || j >= arr.length - 2) {
} else {//create
the logic, take first, second and third row of array
int sum_temp = 0;
//get sum of first row
int row_firstTemp = arr[i][j] + arr[i][j + 1] + arr[i][j + 2];
//get sum of 2nd row
int row_secoundTemp = arr[i + 1][j + 1];
//get sum of 3rd row
int row_thirdTemp = arr[i + 2][j] + arr[i + 2][j + 1] + arr[i + 2][j + 2];
//add all rows of array
sum_temp = row_firstTemp + row_secoundTemp + row_thirdTemp;
//check with count
if (sum_temp > count) {
count = sum_temp;
}
}
}
}
//final
output
System.out.println("Output: " + count);
}
}