Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
One liner + 2 another solution solution in Clear category for The Highest Building by CDG.Axel
def highest_building(buildings):
# short
return [(a := list(map(sum, zip(*buildings)))).index(max(a)) + 1, max(a)]
"""
# a little longer
# you can omit list() for this solution
return list(reversed(sorted([(sum(b), i+1)
for i, b in enumerate(zip(*buildings))])[-1]))
# C-style solution
max_id = max_height = 0
for idx, building in enumerate(zip(*buildings)):
if sum(building) > max_height:
max_id, max_height = idx, sum(building)
return [max_id + 1, max_height]
"""
if __name__ == '__main__':
print("Example:")
print(highest_building([
[0, 0, 1, 0],
[1, 0, 1, 0],
[1, 1, 1, 0],
[1, 1, 1, 1]
]))
#These "asserts" using only for self-checking and not necessary for auto-testing
assert highest_building([
[0, 0, 1, 0],
[1, 0, 1, 0],
[1, 1, 1, 0],
[1, 1, 1, 1]
]) == [3, 4], "Common"
assert highest_building([
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 1]
]) == [4, 1], "Cabin in the wood"
assert highest_building([
[1, 0, 0, 0, 0],
[1, 1, 0, 0, 0],
[1, 1, 1, 0, 0],
[1, 1, 1, 1, 0],
[1, 1, 1, 1, 1]
]) == [1, 5], "Triangle"
assert highest_building([
[0, 0, 0, 1, 0, 0, 0],
[0, 0, 1, 1, 1, 0, 0],
[0, 1, 1, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1]
]) == [4, 6], "Pyramid"
print("Coding complete? Click 'Check' to earn cool rewards!")
Sept. 9, 2021
Comments: