[코딩테스트] 하사드 수 판단 | 프로그래머스

Bluewave·2024년 5월 11일

코테공부_java

목록 보기
18/99
post-thumbnail

문제

✏️ 문제 바로가기

문제레벨정답률
하사드 수Lv.187%

My Code

class Solution {
    public boolean solution(int x) {
        int sum = calculateDigitSum(x);
        
        return x % sum == 0;
    }

    private int calculateDigitSum(int num) {
        int sum = 0;
        while (num > 0) {
            sum += num % 10; 
            num /= 10; 
        }
        return sum;
    }
}

우선 전체적인 로직은 간단하다.
각 자리의 숫자 합을 구하고, 나누어 떨어지는지 확인해서 결과를 return.

각 자리 숫자 합을 구하는 건 숫자를 10으로 나누어서 제일 끝에 있는 일의 자리 숫자를 sum에 더하고,
10으로 나누어서 일의 자리 숫자를 제거한다.
이를 숫자가 0이 되기 전까지 반복하면 된다.

각 자릿수의 합을 구하는 방법만 알면 풀 수 있는 문제라, 처음 접하는 사람일 경우에는 공식처럼 외워두는 것도 좋을듯!

- 숫자를 10으로 나눈 나머지를 구한 뒤 더하고, 10으로 나누기!

profile
Developer's Logbook

0개의 댓글