μ• μ •μ½”λ”© πŸ’»

문제

μ–‘μ˜ μ •μˆ˜ xκ°€ ν•˜μƒ€λ“œ 수이렀면 x의 자릿수의 ν•©μœΌλ‘œ xκ°€ λ‚˜λˆ„μ–΄μ Έμ•Ό ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ 18의 자릿수 합은 1+8=9이고, 18은 9둜 λ‚˜λˆ„μ–΄ λ–¨μ–΄μ§€λ―€λ‘œ 18은 ν•˜μƒ€λ“œ μˆ˜μž…λ‹ˆλ‹€. μžμ—°μˆ˜ xλ₯Ό μž…λ ₯λ°›μ•„ xκ°€ ν•˜μƒ€λ“œ μˆ˜μΈμ§€ μ•„λ‹Œμ§€ κ²€μ‚¬ν•˜λŠ” ν•¨μˆ˜, solution을 μ™„μ„±ν•΄μ£Όμ„Έμš”.

 

λ‹€λ₯Έ μ‚¬λžŒμ΄ ν‘Ό 문제λ₯Ό λ³΄λ‹ˆ κ°„κ²°ν•˜κ²Œ ν‘Ό μ‚¬λžŒλ„ λ§Žμ§€λ§Œ μ•Œκ³ λ¦¬μ¦˜μ˜ μ·¨μ§€λŠ” 그게 μ•„λ‹ˆμ§€ μ•Šλ‚˜... 싢기도 ν•˜κ³ 

속도도 느린게 λ§Žμ•„μ„œ κ·Έλƒ₯ λ‚΄ λ°©μ‹μœΌλ‘œ ν’€κ³  μ†λ„μ΄μŠˆκ°€ 크지 μ•ŠλŠ” 이상 μˆ˜μ •ν•˜μ§€ μ•ŠκΈ°λ‘œ ν–ˆλ‹€!

class Solution {
    public boolean solution(int x) {
        boolean answer = true;
        int calValue = 0;
        if(x/10>0){
            String stringValue = String.valueOf(x);
            char[] charArray = stringValue.toCharArray();
            calValue = Character.getNumericValue(charArray[0])+Character.getNumericValue(charArray[1]);
            for(int i=2;i<charArray.length;i++){
                calValue += Character.getNumericValue(charArray[i]);                                
            }
            if(x%calValue == 0){
                answer = true;
            }else{
                answer = false;
            }
            
        }
        return answer;
    }
}
λ°˜μ‘ν˜•