양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
arr | return |
---|---|
10 | true |
12 | true |
11 | false |
13 | false |
import java.util.*;
class Solution {
public boolean solution(int x) {
boolean answer = true;
ArrayList<Integer> list = new ArrayList<>();
int sum = 0;
int tmp = x;
while(tmp > 0){ // ex) tmp = 123
list.add(tmp % 10); // 123 % 10 = 3;
tmp /= 10; // 123 / 10 = 12; ...
}
for(int i = 0; i < list.size(); i++) {
sum += list.get(i);
}
if(x % sum != 0) { // 123 % 6 = false;
answer = false;
}
return answer;
}
}
while
에서 자릿수를 나눠준다.for
에서 자릿수끼리 더해준다.if
에서 하샤드 수인지 확인을 한다.