@@ -178,3 +178,56 @@ let howManyTimes = (arr, word) => {
178
178
179
179
console . log ( howManyTimes ( wordsCount , 'matter' ) ) ;
180
180
181
+ // Iteration #8: Bonus
182
+ const matrix = [
183
+ [ 8 , 2 , 22 , 97 , 38 , 15 , 0 , 40 , 0 , 75 , 4 , 5 , 7 , 78 , 52 , 12 , 50 , 77 , 91 , 8 ] ,
184
+ [ 49 , 49 , 99 , 40 , 17 , 81 , 18 , 57 , 60 , 87 , 17 , 40 , 98 , 43 , 69 , 48 , 4 , 56 , 62 , 0 ] ,
185
+ [ 81 , 49 , 31 , 73 , 55 , 79 , 14 , 29 , 93 , 71 , 40 , 67 , 53 , 88 , 30 , 3 , 49 , 13 , 36 , 65 ] ,
186
+ [ 52 , 70 , 95 , 23 , 4 , 60 , 11 , 42 , 69 , 24 , 68 , 56 , 1 , 32 , 56 , 71 , 37 , 2 , 36 , 91 ] ,
187
+ [ 22 , 31 , 16 , 71 , 51 , 67 , 63 , 89 , 41 , 92 , 36 , 54 , 22 , 40 , 40 , 28 , 66 , 33 , 13 , 80 ] ,
188
+ [ 24 , 47 , 32 , 60 , 99 , 3 , 45 , 2 , 44 , 75 , 33 , 53 , 78 , 36 , 84 , 20 , 35 , 17 , 12 , 50 ] ,
189
+ [ 32 , 98 , 81 , 28 , 64 , 23 , 67 , 10 , 26 , 38 , 40 , 67 , 59 , 54 , 70 , 66 , 18 , 38 , 64 , 70 ] ,
190
+ [ 67 , 26 , 20 , 68 , 2 , 62 , 12 , 20 , 95 , 63 , 94 , 39 , 63 , 8 , 40 , 91 , 66 , 49 , 94 , 21 ] ,
191
+ [ 24 , 55 , 58 , 5 , 66 , 73 , 99 , 26 , 97 , 17 , 78 , 78 , 96 , 83 , 14 , 88 , 34 , 89 , 63 , 72 ] ,
192
+ [ 21 , 36 , 23 , 9 , 75 , 0 , 76 , 44 , 20 , 45 , 35 , 14 , 0 , 61 , 33 , 97 , 34 , 31 , 33 , 95 ] ,
193
+ [ 78 , 17 , 53 , 28 , 22 , 75 , 31 , 67 , 15 , 94 , 3 , 80 , 4 , 62 , 16 , 14 , 9 , 53 , 56 , 92 ] ,
194
+ [ 16 , 39 , 5 , 42 , 96 , 35 , 31 , 47 , 55 , 58 , 88 , 24 , 0 , 17 , 54 , 24 , 36 , 29 , 85 , 57 ] ,
195
+ [ 86 , 56 , 0 , 48 , 35 , 71 , 89 , 7 , 5 , 44 , 44 , 37 , 44 , 60 , 21 , 58 , 51 , 54 , 17 , 58 ] ,
196
+ [ 19 , 80 , 81 , 68 , 5 , 94 , 47 , 69 , 28 , 73 , 92 , 13 , 86 , 52 , 17 , 77 , 4 , 89 , 55 , 40 ] ,
197
+ [ 4 , 52 , 8 , 83 , 97 , 35 , 99 , 16 , 7 , 97 , 57 , 32 , 16 , 26 , 26 , 79 , 33 , 27 , 98 , 66 ] ,
198
+ [ 88 , 36 , 68 , 87 , 57 , 62 , 20 , 72 , 3 , 46 , 33 , 67 , 46 , 55 , 12 , 32 , 63 , 93 , 53 , 69 ] ,
199
+ [ 4 , 42 , 16 , 73 , 38 , 25 , 39 , 11 , 24 , 94 , 72 , 18 , 8 , 46 , 29 , 32 , 40 , 62 , 76 , 36 ] ,
200
+ [ 20 , 69 , 36 , 41 , 72 , 30 , 23 , 88 , 34 , 62 , 99 , 69 , 82 , 67 , 59 , 85 , 74 , 4 , 36 , 16 ] ,
201
+ [ 20 , 73 , 35 , 29 , 78 , 31 , 90 , 1 , 74 , 31 , 49 , 71 , 48 , 86 , 81 , 16 , 23 , 57 , 5 , 54 ] ,
202
+ [ 1 , 70 , 54 , 71 , 83 , 51 , 54 , 69 , 16 , 92 , 33 , 48 , 61 , 43 , 52 , 1 , 89 , 19 , 67 , 48 ]
203
+ ] ;
204
+
205
+ let greatestProduct = ( matrix ) => {
206
+ let totalProduct = 0 ;
207
+ let horizontalProduct = 0 ;
208
+ let verticalProduct = 0 ;
209
+ for ( let i = 0 ; i < matrix . length ; i ++ ) {
210
+ for ( let k = 0 ; k < matrix [ i ] . length ; k ++ ) {
211
+ if ( i + 3 < matrix . length ) {
212
+ verticalProduct = matrix [ i ] [ k ] * matrix [ i + 1 ] [ k ] * matrix [ i + 2 ] [ k ] * matrix [ i + 3 ] [ k ] ;
213
+ }
214
+ if ( k + 3 < matrix [ i ] . length ) {
215
+ horizontalProduct = matrix [ i ] [ k ] * matrix [ i ] [ k + 1 ] * matrix [ i ] [ k + 2 ] * matrix [ i ] [ k + 3 ] ;
216
+ }
217
+ if ( horizontalProduct > verticalProduct && totalProduct < horizontalProduct ) {
218
+ totalProduct = horizontalProduct ;
219
+ }
220
+ else if ( horizontalProduct < verticalProduct && totalProduct < verticalProduct ) {
221
+ totalProduct = verticalProduct ;
222
+ }
223
+ }
224
+ }
225
+ return totalProduct ;
226
+ }
227
+
228
+ console . log ( greatestProduct ( matrix ) ) ;
229
+
230
+ //Bonus - Iteration #8.1: Product of diagonals
231
+ let greatestProductOfDiagonals = ( matrix ) => {
232
+
233
+ }
0 commit comments