본문 바로가기
Kotlin Language/programmers

Kotlin - 하샤드 수 프로그래머스 코딩 연습 ( 21 )

by Classic Master 2023. 12. 7.
728x90

프로그래머스 문제

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.

x return
10 true
12 true
11 false
13 false

하샤드 수?

  • "하샤드 수 (harshad number) , "니번 수" 라고도 불리우는 수입니다.
  • 하샤드 수 는 (주어진 진법 에서) 그 수의 "각 자릿수 숫자의 합" 으로 그 수가 "나누어지는 양의 정수" 를 말합니다.
    "자기자신이 각 자리숫자의 합의 몇 배가 되어서 약수와 배수의 관계가 되는 수" 를 일컫는 말입니다.

코틀린 하샤드 수 답

class Solution {
    fun solution(x: Int): Boolean {
        var answer = true
        var num = x
        var sum = 0
        while(num>0) {
            sum += num %10
            num /= 10
        }
        if(x % sum == 0) 
            answer = true
        else
            answer = false
        return answer
    }
}

코틀린 풀이

while (num > 0) 입력된 정수 x의 각 자릿수를 구하기 위해, num이 0보다 큰 동안 반복합니다.
sum += num % 10을 사용해 현재 num의 일의 자릿수를 sum에 더하여,
num /= 10을 num을 10으로 나눈 몫으로 갱신하여 다음 자릿수를 처리합니다.
if (x % sum == 0) 입력된 정수 x를 sum으로 나누어 떨어지는지 검사합니다.
answer 변수를 이용하여 결과를 저장합니다. 나누어 떨어지면 true, 그렇지 않으면 false로 설정됩니다.
return answer 최종적으로 함수는 answer 값을 반환합니다. 따라서, 입력된 정수 x의 각 자릿수의 합이 x 자체로 나누어 떨어지면 true를, 그렇지 않으면 false를 반환합니다.

 

 

 

728x90
반응형