scenicScore = (matrix, i, j) => {
const distToValue = (list, v) => {
const idx = list.findIndex((d) => d >= v);
return idx >= 0 ? idx + 1 : list.length;
};
const cell = matrix[i][j];
const distT = distToValue(top(matrix, i, j), cell);
const distD = distToValue(bottom(matrix, i, j), cell);
const distL = distToValue(left(matrix, i, j), cell);
const distR = distToValue(right(matrix, i, j), cell);
return product([distT, distD, distL, distR]);
}