[자바코딩] 하샤드 수

gnoesnooj·2021년 11월 28일
0

하샤드 수 : 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;
    }
}

다른 사람 풀이

Stringsplit() 메소드를 이용해 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;
    }
}

아직도 갈 길이 너무 멀다...

profile
누구나 믿을 수 있는 개발자가 되자 !

0개의 댓글