[프로그래머스] Level1.하샤드 수

Benjamin·2023년 3월 3일
0

프로그래머스

목록 보기
36/58

Troubleshooting

class Solution {
    public boolean solution(int x) {
        boolean answer = true;
        int sum = 0;
        while(x >0) {
            sum += (x%10);        
            x /= 10;
        }
        System.out.println(x%sum);
        if(x%sum!=0) answer = false; //여기로 안들어가짐
        return answer;
    }
}

문제

답이 항상 true로 나온다.

원인

문제는 마지막에 if문으로 답이 false인지 체크할때 x변수를 사용해야하는데, while문에서 x /= 10으로 x를 계속 업데이트하는것이었다.

해결

반복문에서 사용하는 변수와 반복문 나와서 사용하는 변수를 구분했다.

내 코드

class Solution {
    public boolean solution(int x) {
        boolean answer = true;
        int sum = 0;
        int temp =x;
        while(x >0) {
            sum += (x%10);        
            x /= 10;
        }
        System.out.println(x%sum);
        if(temp%sum!=0) answer = false;
        return answer;
    }
}

0개의 댓글