Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Functional solution in Clear category for [old] Weak Point by cwilbur
"use strict";
const rowSums = m => m.map(row => row.reduce((a, v) => (a + v), 0))
const colSums = m => m.reduce((a, v) => v.map((e, i) => e + (a[i] || 0)))
const firstLowestIndex = a => a.reduce((m, e, i, a) => (e < a[m] ? i : m), 0)
function weakPoint (matrix) {
return [firstLowestIndex(rowSums(matrix)), firstLowestIndex(colSums(matrix))]
}
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");
}
Oct. 5, 2017