알고리즘 풀이 방법입니다.
문제(Problem) -> 생각(Think) -> 해결책(Solution) -> 리뷰(Review) 를 통해서 정리해서 작성합니다.
Problem📄

https://programmers.co.kr/learn/courses/30/lessons/12947

 

코딩테스트 연습 - 하샤드 수

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하

programmers.co.kr

13의 모든 자릿수의 합은 4, 13은 4로 나누어 떨어지지 않으므로 13은 하샤드 수가 아닙니다.


Think🤔

하샤드 수?라는 것은

자릿수의 합이 9이고 원래의 값을 자릿수 합으로 나눴을때 나누어 떨어지면 하샤드 수가 되므로

true를 반환시키면 된다.

 

각 자릿수의 합을 구하고, 나눠 떨어지면 true를 반환하게 하면 된다.


Solution✍
class Solution {
    public boolean solution(int x) {
        
        // String으로 변환
        String str = x+"";
        
        // 자릿수 합
        int hab=0;
        
        // x값 변환 안되게 tmp 사용
        int tmp = x;
        
        // 자릿수 hab에 누적해서 더해줌
        while(tmp > 0){
            hab += tmp%10;
            tmp = tmp/10;
        }
        
        // 나눴을때 나머지가 없으면 true를 리턴
        if(x % hab == 0){
            return true;
        }
        
        return false;
    }
}
class Solution {
    public boolean solution(int x) {
        
        String []str = String.valueOf(x).split("");
        
        int hab = 0;
        for(int i=0; i<str.length; i++){
            hab += Integer.parseInt(str[i]);
        }
        
        if(x % hab == 0){
            return true;
        }
        
        return false;
    }
}

Review🤩

split 키워드를 보고 바로 이전으로 돌아와서 split로 짜는 방법을 생각해봤다!


 

+ Recent posts