Given a *6 X 6* Array *arr*:

```
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 *arr*'s graphical representation:

```
a b c
d
e f g
```

There are *16* hourglasses in *arr*. An hourglass sum is the sum of an hourglass' values. Calculate the hourglass sum for every hourglass in *arr*, then print the maximum hourglass sum. The array will always be *6 X 6*.

### Example

*arr =*

```
-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
```

The *16* hourglass sums are:

```
-63, -34, -9, 12,
-10, 0, 28, 23,
-27, -11, -2, 10,
9, 17, 25, 18
```

The highest hourglass sum is *28* from the hourglass beginning at row 1, column 2:

```
0 4 3
1
8 6 6
```

### Function Description

Complete the function hourglassSum in the editor below.

hourglassSum has the following parameter(s):

- int arr[6][6]: an array of integers

### Returns

- int: the maximum hourglass sum

Input Format

Each of the *6* lines of inputs *arr[i]* contains 6 space-separated integers arr[i][j].

### Solution

```
function hourglassSum(arr) {
// Write your code here
let maxSum = ''
for (let step1 = 0; step1 < arr.length-2; step1++){
for (let step2 = 0; step2 < arr.length-2; step2++){
const currentSum = arr[step1][step2] + arr[step1][step2+1]
+ arr[step1][step2+2] + arr[step1+1][step2+1]
+ arr[step1+2][step2] + arr[step1+2][step2+1]
+ arr[step1+2][step2+2]
if(currentSum <= 0){
const temp = currentSum
if (typeof maxSum == 'string' ){
maxSum = temp
} else if(temp == 0 && maxSum <= 0){
maxSum = temp
}
else if(temp > maxSum){
maxSum = temp
}
} else if(currentSum > maxSum){
maxSum = currentSum
}
}
}
return maxSum
}
```

## Top comments (1)