Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Color Map by fed.kz
def color_map(region):
count = max(sum(region, tuple()))
answer = []
grid = [[0 for _ in range(len(region[0]))] for _ in range(len(region))]
def get_border(territory):
nonlocal region
values = set()
for x, y in territory:
values.update({grid[x+i][y+j] for i, j in [(0,1), (0,-1), (-1,0), (1,0)] if
0 <= x+i < len(region) and 0 <= y+j < len(region[0])
and (x+i, y+j) not in territory})
return values
for value in range(count + 1):
territory = [(x, y) for x in range(len(region)) for y in range(len(region[0])) if region[x][y] == value]
border = get_border(territory)
free = {1, 2, 3, 4}.difference(border)
color = min(free)
for x, y in territory:
grid[x][y] = color
answer.append(color)
return answer
Oct. 2, 2018