Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Weak Point by jcg
def row_sum(matrix, row_index):
return sum(matrix[row_index])
def col_sum(matrix, col_index):
return sum(matrix[row_index][col_index] for row_index in range(len(matrix)))
def weak_point(matrix):
min_row_index = min(
(row_index for row_index in range(len(matrix))),
key = lambda i: row_sum(matrix, i)
)
min_col_index = min(
(col_index for col_index in range(len(matrix[0]))),
key = lambda i: col_sum(matrix, i)
)
return (min_row_index, min_col_index)
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
assert isinstance(weak_point([[1]]), (list, tuple)), "The result should be a list or a tuple"
assert list(weak_point([[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 list(weak_point([[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 list(weak_point([[1, 1, 1],
[1, 1, 1],
[1, 1, 1]])) == [0, 0], "Top left"
July 10, 2014