Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Pretty Clear and Readable IMHO solution in Clear category for [old] Weak Point by MarkNixon
"use strict";
function weakPoint(matrix){
//array of row totals
const rowTotals = matrix.map((e, i) => {
return matrix[i].reduce((a, x) => a + x);
});
//array of column totals
const fetchCol = (arr, col) => arr.map(e => e[col]);
const colTotals = matrix.map((e, i) => {
return Array.from(fetchCol(matrix, i)).reduce((a, x) => a + x);
});
//return coordinate
const rowMin = rowTotals.indexOf(Math.min(...rowTotals));
const colMin = colTotals.indexOf(Math.min(...colTotals));
return [rowMin, colMin];
}
var assert = require('assert');
if (!global.is_checking) {
assert.deepEqual(weakPoint([[7, 2, 7, 2, 8],
[2, 9, 4, 1, 7],
[3, 8, 6, 2, 4],
[2, 5, 2, 9, 1],
[6, 6, 5, 4, 5]]
), [3, 3], "Example");
assert.deepEqual(weakPoint([[7, 2, 4, 2, 8],
[2, 8, 1, 1, 7],
[3, 8, 6, 2, 4],
[2, 5, 2, 9, 1],
[6, 6, 5, 4, 5]]
), [1, 2], "Two weak point");
assert.deepEqual(weakPoint([[1, 1, 1],
[1, 1, 1],
[1, 1, 1]]
), [0, 0], "Top left");
console.log("Coding complete? Click 'Check' to review your tests and earn cool rewards!");
}
Feb. 21, 2020