This is a walk-through article by one of ClinkIT Solutions’ software developers on solving a hacker rank problem.
In this article, we are going to solve a hacker rank problem called Hackerland Radio Transmitter.
HackerRank is a coding-based online platform where programmers, developers, and hackers can learn about, practice, and solve competitive programming problems, tests, and challenges. Hackerland Radio Transmitter is an example and you can find its problem statement here.
Imagine you are in a one-dimensional city where houses are inline, and you need to install transmitters on the roofs. The transmitter has a fixed range where it can only cover houses within a specified area. The goal is to print the minimum number of transmitters needed to cover all the houses. A transmitter can only be installed on an existing house.
We are given an array of integer, X
, describing the location of each house and K
for the range of a transmitter. Here is an example:
K = 1. X = 1 2 3 4 5
In our example above, we can cover all locations in X by installing transmitters in house 2 and 4.
Now, let’s translate this into code:
First, let’s sort X
by ascending order. This will also prevent duplicate values on the code later on.
The installed
variable will refer to the number of installed transmitters. This is the variable we are going to return in our function.
The mid
variable will help us to track the middle distance of transmitter.
The end
variable will help us to track the farthest distance of transmitter.
Second, let’s look at lines 2 – 5. We calculate the possible middle position of transmitter then we will have a while loop that keeps looping until x[i] less than or equal to mid
and we increment i
variable upon loop.
Once our x[i]
is in the middle position, we increment the installed
variable by 1.
Then we will do the same to find the farthest distance.
This will keep looping until it covers all the houses.
Here’s the full code:
Get the latest insights on developer best practices, technologies and solutions for businesses here. Need help with application development or other development services? Schedule a free consultation with us.