Two Dimensional Array Solution in Java
Problem Statement :-
Given 6 * 6 Two Dimensional Array.
1 1 1 0 0 0
0 1 0 0 0 0
1 1 1 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
An hourglass in A is a subset of values with indices falling in this pattern in array's graphical representation.
a b c
d
e f g
There are 16 hourglass in Array. An hourglass sum is the sum of an hourglass' values. Calculate the hourglass sum for every hourglass in Array. then print the maximum hourglass sum. The array will always be 6 * 6.
Example :-
Array
-9 -9 -9 1 1 1
0 -9 0 4 3 2
-9 -9 -9 1 2 3
0 0 8 6 6 0
0 0 0 -2 0 0
0 0 1 2 4 0
Then 16 hourglass sum are
-63, -34, -9, 12,
-10, 0, 28, 23,
-27, -11, -2, 10,
9, 17, 25, 18
The highest hourglass sum is 28.
0 4 3
1
8 6 6
So lets see solution of this problem in Java.
public class TwoDArrayDS {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Initialize maxSum -63 because it is min value (-9 * 6)
int maxSum = -63;
int currentSum;
int[][] matrix = new int[6][6];
System.out.println("Enter array values");
for(int i=0; i<6; i++) {
for(int j=0; j<6; j++) {
matrix[i][j] = scanner.nextInt();
}
}
for(int i=0; i<4; i++) {
for(int j=0; j<4; j++) {
currentSum = matrix[i][j] + matrix[i][j+1] + matrix[i][j+2] +
matrix[i+1][j+1] +
matrix[i+2][j] + matrix[i+2][j+1] + matrix[i+2][j+2];
maxSum = Math.max(currentSum,maxSum);
}
}
System.out.println(maxSum);
}
}
Output :-
Enter array values
1 1 1 0 0 0
0 1 0 0 0 0
1 1 1 0 0 0
0 0 2 4 4 0
0 0 0 2 0 0
0 0 1 2 4 0
The Max Sum is :- 19
____________________
Enter array values
1 1 1 0 0 0
0 1 0 0 0 0
1 1 1 0 0 0
0 9 2 -4 -4 0
0 0 0 -2 0 0
0 0 -1 -2 -4 0
The Max Sum is :- 13
Check out Other HackerRank Problem Solution in Java.
- Repeated String HackerRank Solution
- Sales by Match HackerRank Solution
- Counting Valleys HackerRank Solution
Comments
Post a Comment