Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read
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?
You might want to add some details to your flag.
Why should this post be closed?

1 comment thread

Include a test with overlapping beacons (8 comments)

0 answers

Sign up to answer this question »

This community is part of the Codidact network. We have other communities too — take a look!

You can also join us in chat!

Want to advertise this community? Use our templates!

Like what we're doing? Support us! Donate