[HackerRank/C++] Jumping on the Clouds

2023. 2. 7. 07:50코딩테스트 해커랭크/Algorithms -Easy

구름의 정보를 가지는 배열 c를 받는다

 

배열 c에서 값이 1인 경우 뇌운으로 밟을 수 없고, 0인 경우 적운으로 밟을 수 있다

 

한번에 2칸의 구름까지 뛰어넘을 수 있을때, 마지막 구름에 도달하기 위한 최소 점프 횟수를 return 한다

int jumpingOnClouds(vector<int> c)
{
    int result = 0;
    
    for (int i = 0; i < c.size(); )
    {
        if (!c[i + 2] && i + 2 < c.size())
        {
            i += 2;
            ++result;
        }
        else
        {
            ++i;
            ++result;
        }
    }
    
    return --result;
}

만약 2칸을 뛰어넘었을때 해당 구름이 뇌운(1)이 아니며, c.size() 보다 작다면 2칸을 뛰고 i는 2를 더하며, 점프 횟수는 1을 더한다

 

그렇지 않다면 i는 1을 더하며 점프 횟수도 1을 더한다

 

이렇게 나온 점프 횟수는 1이 더 많기 때문에 1을 뺀 값을 return 한다