Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Second solution in Clear category for Loading Cargo by JeffReymond
from itertools import product
def checkio(data):
balances = []
for sides in product((0, 1), repeat = len(data)):
left = [data[i] for i, x in enumerate(sides) if not x]
right = [data[i] for i, x in enumerate(sides) if x]
balances.append(abs(sum(left) - sum(right)))
print(balances)
return min(balances)
#These "asserts" using only for self-checking and not necessary for auto-testing
if __name__ == '__main__':
assert checkio([10, 10]) == 0, "1st example"
assert checkio([10]) == 10, "2nd example"
assert checkio([5, 8, 13, 27, 14]) == 3, "3rd example"
assert checkio([5, 5, 6, 5]) == 1, "4th example"
assert checkio([12, 30, 30, 32, 42, 49]) == 9, "5th example"
assert checkio([1, 1, 1, 3]) == 0, "6th example"
Oct. 6, 2014
Comments: