하샤드 수 : n이 각 자리수를 합한 수 x로 나뉘어 질 때 해당 수는 하샤드 수라고 한다.
ex) 12는 각 자리수 1+2=3으로 나뉘어지기 때문에 하샤드 수 이다.
x
에 대해서 자리수별로 쪼개기 위해 int
->String
-> char[]
-> String
-> int
순서로 거쳐서 각 자리수의 숫자를 구했다.
class Solution {
public boolean solution(int x) {
String str = Integer.toString(x); // int to String
char [] c = str.toCharArray(); // String to char[]
int sum=0;
for(int i=0;i<c.length ; i++){
int tmp = Integer.parseInt(Character.toString(c[i])); // char[] to String to int
sum+=tmp;
}
if(x%sum ==0)
return true;
else
return false;
}
}
String
을 split()
메소드를 이용해 String
배열에 넣고, 해당 배열의 값들을 int
로 바꾼 후 풀어내는 방법이였다.
public class HarshadNumber{
public boolean isHarshad(int num){
String[] temp = String.valueOf(num).split("");
int sum = 0;
for (String s : temp) {
sum += Integer.parseInt(s);
}
if (num % sum == 0) {
return true;
} else {
return false;
}
}
아직도 갈 길이 너무 멀다...