본문 바로가기
Log/Coding Test

Day87_Programmers Lv.1 하샤드 수 Java

by uxia 2023. 12. 25.

프로그래머스 Lv.1 '하샤드 수' 자바

 

Q. 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나눠져야 한다.

예를 들어 18의 자릿수 합은 1 + 8 = 9 이고, 18은 9로 나눠 떨어지므로

18은 하샤드 수이다.

자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수 solution을 완성하시오.

 

class Solution {
    public boolean solution(int x) {
        boolean answer = true;
        int sum = 0;
        
        String[] num = Integer.toString(x).split("");
        
        for (int i = 0; i < num.length; i++) {
            sum += Integer.parseInt(num[i]);
        }
        
        if (x % sum == 0) {
            answer = true;
        } else {
            answer = false;
        }
        
        return answer;
    }
}

 

 

첫 번째로 int x를 문자열 배열로 변환한다.

이 때 문자열로 변환하여 배열로 정리해주는 toString(x).split("")을 사용한다.

 

다음으로 for문을 통해 하나씩 증가하도록 하여 자릿수를 모두 더해준다.

 

마지막으로 if문으로 x가 자릿수의 합 sum으로 나누어 떨어지면 true,

x가 sum으로 나누어 떨어지지 않으면 false를 return하도록 한다.