Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Building Visibility solution in 3rd party category for Building Visibility by JimmyCarlos
import numpy as np
class Building:
def __init__(self,x_south_west,y_south_west,x_north_east,y_north_east,height):
self.x_south_west = x_south_west
self.y_south_west = y_south_west
self.x_north_east = x_north_east
self.y_north_east = y_north_east
self.height = height
def __repr__(self):
return "({},{})-({},{})-{}".format(self.x_south_west,self.y_south_west,
self.x_north_east,self.y_north_east,self.height)
def checkio(buildings_table):
buildings = sorted([Building(*x) for x in buildings_table], key=lambda building:building.y_south_west)
buildings_visible = set()
for C in np.arange(0,12,0.1):
buildings_in_range_all = [b for b in buildings if b.x_south_west <= C <= b.x_north_east]
buildings_in_range_visible = []
for building_in_range in buildings_in_range_all:
if len(buildings_in_range_visible) == 0 or building_in_range.height > buildings_in_range_visible[-1].height:
buildings_in_range_visible.append(building_in_range)
buildings_visible |= set(buildings_in_range_visible)
return len(buildings_visible)
July 24, 2019
Comments: