하샤드 수

두주·2023년 12월 21일

코드카타

목록 보기
11/19
class Solution {
    fun solution(x: Int): Boolean {
        var num: List<String> = x.toString().split("")
        var num1 = num.first().toInt()
        var num2 = num.last().toInt()
            
        var num3 = num1 + num2
        val isHashard = if(x%num3 == 0) {
            true
        } else {
            false
        }

        return isHashard
    }
    
}

이렇게 했는데 안됐다.

목적은 x를 문자열로 바꿔서 11을 1과 1로 떼고자 했는데 안됐다.
11과 11이 출력됐다.

GPT의 도움을 받았다.

class Solution {
    fun solution(x: Int): Boolean {
        val sum = x.toString().sumOf { it - '0' }
        return x % sum == 0
    }
}

내가 생각했던 것 보다 훨씬 간단하게 구현할 수 있다.

0을 빼주는 이유는 문자열을 ASCII코드로 반환하기에
예를들어 0이란 문자는 ASCII 코드로 100이라면 1은 101 2는 102니까
0을 빼줌으로서 정수 1~9를 얻어낼 수 있는 것이다.

profile
야옹.

0개의 댓글