Problem:

Solution:
Following the code implemented to solve it.
package algoTest
func JumpingOnClouds(c []int32) int {
jumps :=0
i := 0;
// input:= []int32{0, 0, 1, 0, 0, 1, 0}
for {
if i + 2 < len(c) && c[i + 2] == 0 {
i += 2;
} else if i + 1 < len(c) {
i++;
} else {
break;
}
jumps++;
}
return jumps;
}
The following code is to test this implementation.
package algoTest
import (
"github.com/stretchr/testify/assert"
"testing"
)
func TestJumpingOnClouds(t *testing.T) {
input:= []int32{0, 0, 1, 0, 0, 1, 0}
got := JumpingOnClouds( input )
assert.Equal(t,4, got )
input2:= []int32{0, 0, 0, 1, 0, 0}
got2 := JumpingOnClouds( input2 )
assert.Equal(t,3, got2 )
input3:= []int32{0, 0}
got3 := JumpingOnClouds( input3 )
assert.Equal(t,1, got3 )
input4:= []int32{1, 0}
got4 := JumpingOnClouds( input4 )
assert.Equal(t,1, got4 )
}
This problem is from : https://www.hackerrank.com