[HackerRank/C++] Find Digits

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

정수 n이 주어질때 n을 각각의 자릿수의 값으로 나눌때 0으로 나누어 떨어지는 횟수를 return 한다

int findDigits(int n)
{
    int result = 0;
    string temp = to_string(n);
    
    for(int i = 0; i < temp.size(); ++i)
    {
        int t = temp[i] - '0';
        if (t == 0)
            continue;
        if (0 == n % t)
            ++result;
    }
    
    return result;
}

각각 자릿수를 구하는 방법은 string을 사용하는 방법이 편하므로 to_string으로 n을 문자열로 만들어 temp에 저장한다

 

temp의 각 인덱스 값은 '문자열'이므로 '0'의 값을 빼 실제 숫자 값으로 만들고, n을 이 값으로 나눴을때 나머지가 0인 경우 result에 카운트하고 return 한다

 

0으로 나누는 경우는 절대 있어서는 안되기 때문에 나누는 수가 0일 경우를 반드시 예외처리 한다