Communities

tag:snake search within a tag
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
created:<1w created < 1 week ago
post_type:xxxx type of post
Challenges

Mark my beacons

+2
−0

Given a grid of numbers, mark the concentric areas around nonzero elements (beacons) decreasing from the value of the beacon till 1.

For example, here are some grids with a single beacon:

Size 1:

0 0 0    0 0 0
0 1 0 -> 0 1 0
0 0 0    0 0 0


Size 2:

0 0 0    1 1 1
0 2 0 -> 1 2 1
0 0 0    1 1 1


Size 3:

0 0 0 0 0    1 1 1 1 1
0 0 0 0 0    1 2 2 2 1
0 0 3 0 0 -> 1 2 3 2 1
0 0 0 0 0    1 2 2 2 1
0 0 0 0 0    1 1 1 1 1


I/O

Your input is in the form of a 2D grid of integers. You can take the dimensions if needed.

• Your output can have multiple beacons of various sizes.
• If beacons overlap, you can overwrite one full beacon over the other. You can choose which beacon takes priority.
• beacons can be on the edges of the grid. they will not wrap around.

Tests

Test 1: JSON Array

Input:
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 4
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0 0
0 0 0 2 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
Output:
0 0 0 0 0 0 1 2 3 3
0 0 0 0 0 0 1 2 3 4
0 0 0 0 0 0 1 2 3 3
1 1 0 0 0 0 1 2 2 2
2 1 1 1 1 0 1 1 1 1
1 1 1 2 1 0 1 0 0 0
0 0 1 1 1 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0


Test 2: JSON Array

Input:
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 4 0 0 0 0
0 0 4 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 3 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Output:
1 1 1 1 1 1 0 1 2 2 2 2 2 1 0
2 2 2 2 2 1 0 1 2 3 3 3 2 1 0
2 3 3 3 2 1 0 1 2 3 4 3 2 1 0
2 3 4 3 2 1 0 1 2 3 3 3 2 1 0
2 3 3 3 2 1 0 1 2 2 2 2 2 1 0
2 2 2 2 2 1 0 1 1 1 1 1 1 1 0
1 1 1 1 1 1 0 0 0 0 0 0 0 0 0
1 2 2 2 1 0 0 0 0 0 0 0 0 0 0
1 2 3 2 1 0 0 0 0 0 0 0 0 0 0
1 2 2 2 1 0 0 0 0 0 0 0 0 0 0


Test 3: JSON Array

Input:
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 3 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 3 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
All possible outputs:
1 1 1 1 1 0 0 0
1 2 2 2 1 0 0 0
1 2 1 1 1 1 1 0
1 2 1 2 2 2 1 0
1 1 1 2 3 2 1 0
0 0 1 2 2 2 1 0
0 0 1 1 1 1 1 0
0 0 0 0 0 0 0 0
---
1 1 1 1 1 0 0 0
1 2 2 2 1 0 0 0
1 2 3 2 1 1 1 0
1 2 2 2 1 2 1 0
1 1 1 1 1 2 1 0
0 0 1 2 2 2 1 0
0 0 1 1 1 1 1 0
0 0 0 0 0 0 0 0
Why does this post require moderator attention?
Why should this post be closed?

Include a test with overlapping beacons (8 comments)