[프로그래머스/Kotlin] 하샤드 수Algorithm/- Programmers2024. 2. 23. 15:08
Table of Contents
728x90
📑 문제 [ 더 보기 클릭! ]
🌱아이디어
하샤드 수란 주어진 진법에서 그 수의 각 자릿수 숫자의 합으로 나누어 떨어지는 자연수를 말한다.
그렇다면 우선 각 자릿수의 나머지를 구해서 그 자릿수끼리 더한 후 원래 주어진 값을 자릿수끼리 더한 값을 나누어서 떨어
지는 값을 구하면 된다!
🔍 코드 및 풀이
class Solution {
fun solution(x: Int): Boolean {
var sum = 0
var temp = x
while(temp != 0){
sum += temp % 10 // sum = sum + temp % 10 과 같음
temp /= 10 // temp = temp / 10 과 같음
}
return(x % sum == 0)
}
}
변수 sum = 0 과 temp = x로 선언을 해줍니다.
그리고 while문을 통해 양의 정수 x의 1의 자리 숫자를 구할 때까지 계속 반복해 줍니다.
sum에 temp % 10을 하여 나머지 값을 sum에 더해줍니다.
그 후 temp = temp / 10 을 통해 temp에 temp / 10을 한 값을 넣어주면서 1의 자리 숫자를 반복하여 때어 줍니다.
이 과정을 temp 0이 되지 않을 때까지 반복해 줍니다.
📗 느낀 점
각 자릿수를 구하는 공식이라고 생각합니다. 각 자릿수를 구하기 위해선 % 를 이용해 각 자릿수를 구하고
남은 숫자를 나누어주면서 임시 변수를 만들어 이 변수에 값을 넣어 계속 반복해 주는 방식입니다.
Kotlin 언어로 Java 식으로 풀었는데 다음번엔 Kotlin함수를 적극이용하여 다시 풀어 봐야 할 것 같습니다.
반응형
'Algorithm > - Programmers' 카테고리의 다른 글
[프로그래머스/Kotlin] 콜라츠 추측 (1) | 2024.02.28 |
---|---|
[프로그래머스/Kotlin] 두 정수 사이의 합 (0) | 2024.02.27 |
[프로그래머스/Kotlin] 정수 내림차순으로 배치하기 (0) | 2024.02.22 |
[프로그래머스/Kotlin] 정수 제곱근 판별 (0) | 2024.02.21 |
[프로그래머스/Kotlin] 자연수 뒤집어 배열로 만들기 (0) | 2024.02.19 |
@주코딩dev :: 주코딩의 개발노트
주코딩의 개발 노트!
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!