프로그래머스 - 하샤드 수(Java)

윤민선·2026년 8월 22일

프로그래머스

목록 보기
71/77
post-thumbnail

문제 설명

양의 정수 x가 하샤드 수이면 true, 아니면 false를 반환하는 문제이다.

"하샤드 수" 는 각 자릿수의 합으로 나누어지는 수를 말한다.
x = 18 → 자릿수 합: 1+8=9 → 18%9=0 → true
x = 13 → 자릿수 합: 1+3=4 → 13%4=1 → false

접근 방법

  1. 각 자릿수의 합 구하기
  2. x가 자릿수 합으로 나누어 떨어지는지 확인

n % 10으로 마지막 자리 수를 추출하고 n / 10으로 제거한다.

x = 18

1회: 18 % 10 = 8 → sum=8,  n=1
2회: 1  % 10 = 1 → sum=9,  n=0
n=0 → while 종료

18 % 9 = 0 → true ✅

자릿수 합을 구한 뒤 x % sum == 0이면 하샤드 수이므로 true, 아니면 false를 반환하면 된다.

구체적으로 정리한 풀이 흐름:

  1. n % 10n / 10으로 자릿수 합 계산
  2. x % sum == 0으로 하샤드 수 여부 판별 후 반환

최종 코드

class Solution {
    public boolean solution(int x) {
        int sum = 0;
        int n = x;

        while (n > 0) {
            sum += n % 10;
            n = n / 10;
        }

        return x % sum == 0;
    }
}

실행 결과

0개의 댓글