[HackerRank/C++] Beautiful Days at the Movies

2023. 2. 6. 08:09코딩테스트 해커랭크/Algorithms -Easy

릴리는 정수로 노는것을 좋아한다

 

정수 i, j 가 주어질 때 i, j를 포함하는 사이의 값중 해당 값의 자릿수를 뒤집은 값과 원래 값의 차이값을 구하고,

 

그 차이값이 k로 나눴을때 0으로 나누어 떨어진다면 그 날은 아름다운 날이며 영화를 보러 갈 것이다

 

i, j, k가 주어질때 릴리가 몇번 영화를 보러 갈 것인지 구한다

 

int beautifulDays(int i, int j, int k)
{
    int result = 0;
    
    while (i <= j)
    {
        int num = i;
        
        string temp = to_string(num);
        reverse(temp.begin(), temp.end());
        num = stoi(temp);
        
        if (0 == abs(i - num) % k)
            ++result;
        
        ++i;
    }
    
    return result;
}

릴리 노는게 좀 극혐이라 꿀밤 마렵다

 

첫번째로 i와 j를 포함하는 사이 값을 루프를 돈다

 

그리고 i를 num에 저장한 후 그 값을 algoright에 있는 함수를 이용하기 위해 to_string으로 string temp에 저장한다

 

이후 reverse 함수로 temp의 시작과 끝을 뒤집어 준 후 다시 stoi 함수로 그 값을 sum에 저장한다

 

만약 string을 이용하지 않을 것이라면 num의 값을 10의 배수로 나누며 나머지값을 각각 구해서 대입해줘야 한다..

 

이렇게 구한 값을 abs(i - num)으로 절댓값을 구해 k로 나눠 0으로 나누어 떨어진다면 result을 증가시킨다

 

모든 루프가 끝나면 result를 return 한다