티스토리 뷰

https://programmers.co.kr/learn/courses/30/lessons/12947

 

코딩테스트 연습 - 하샤드 수

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하�

programmers.co.kr

 

[문제 풀이]

 

1. 주어진 수는 1 ~ 10_000이므로, 최대 5회 수행한다.

2. 각 자리의 합이 0이 나올 수가 없고, 가장 큰 값은 36 (9999)이므로 int형으로 충분히 풀 수 있다. 

3. 주어진 수를 각 자리의 합으로 나눈 나머지의 값이 0이면 true, 아니면 false를 반환한다.

 

[소스 코드]

 

public class HarshadNumber {
    public static void main(String[] args) {
        int x = 11;

        System.out.println(solution(x));
    }

    private static boolean solution(int x) {
        return x % addDigit(x) == 0;
    }

    private static int addDigit(int x) {
        int sum = 0;

        while (x != 0) {
            sum += x % 10;
            x /= 10;
        }

        return sum;
    }
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
글 보관함