Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Could be optimized to prevent multiple passes over the data solution in Clear category for Weak Point by grutte_pier
def weak_point(matrix):
""" Use a nested function to calculate minimum for row and column.
The nested function calculates the index of the minimum sum over the rows.
We calculate the minimum in the columns by passing it the transpose matrix.
"""
def minimum_sum(rows):
row_sum = tuple(map(sum, rows))
return row_sum.index(min(row_sum))
return minimum_sum(matrix), minimum_sum(zip(*matrix))
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"
Feb. 16, 2015