반응형

1. 문제 설명

- 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다.

- 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다.

- 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.

 

 

2. 제한 조건

- x는 1 이상, 10000 이하인 정수입니다.

 

 

3. 입출력 예

 

arr return
10 true
12 true
11 false
13 false

 

 

4. 문제 풀이 코드

class Solution {

    public boolean solution(int x) {
    
        boolean answer = false;
        String x_str = String.valueOf(x);
        int sum = 0;
        
        for( int i = 0; i < x_str.length(); i++ ) {
            
            sum += Integer.parseInt(String.valueOf(x_str.charAt(i)));
            
        }
        
        if( x % sum == 0 ) {
        
            answer = true;
            
        }
        
        return answer;
        
    }
    
}

 

- answer의 초기 값을 false로 지정하고, 파라미터 x를 String으로 변환했습니다.

- 각 자리 숫자의 합을 구해야하므로 sum을 선언했습니다.

 

- for문을 이용해 x_str의 각 자릿수를 모두 더했습니다.

- 그리고 파라미터 x를 sum으로 나누었을 때, 나머지가 0이라면 answer에 true를 반환했습니다.

 

 

 


이상으로 프로그래머스 Level 1. 하샤드 수 문제를 JAVA 언어로 풀어보았습니다.


 

반응형