TL;DR

On with TASK #2 from the Perl Weekly Challenge #091. Enjoy!

# The challenge

You are given an array of positive numbers @N, where value at each index determines how far you are allowed to jump further. Write a script to decide if you can jump to the last index. Print 1 if you are able to reach the last index otherwise 0.

# The questions

The challenge is pretty clear, apart from a detail… is @N really composed of positive numbers only? That 0 in the second example looks a bit out of place 🧐

# The solution

Here we go:

sub jump_game ($N) { my$position = 0;
$position +=$N->[$position] while$position < $#$N && $N->[$position];
return $position ==$#$N ? 1 : 0; }  Here, it’s really just a matter of following the crumbs. We start with our $position tracker at index 0, then advance it according to the contents of the array, taking a few cares:

• if the index goes exactly on the last spot or beyond, it’s time to stop;
• if the jump length is 0 we stop as well… and avoid an infinite loop!

After the loop terminates, it’s a matter of figuring if we landed to the last position or not.

Have a good one!