백준 알고리즘
[백준 4673] [Kotlin] 셀프 넘버
purecho
2021. 7. 15. 13:46
fun main() {
val max = 10000
var arr = IntArray(max)
var ori = 1
// 생성자 만드는 함수
fun d(n: Int) {
var num = n
var sum = n
// 생성자 만들기
while (num > 0) {
sum += num%10
num /= 10
}
// 생성자가 있으면 배열에 저장, 재귀함수
if (sum >= max) {
return
} else {
arr[sum]++
d(sum)
}
}
// max 까지 반복
while (ori < max) {
d(ori++)
}
// 셀프 넘버 추출
for (i in arr.indices) {
if (i != 0 && arr[i] == 0) {
println(i)
}
}
}
메모리 | 시간 | 언어 | 코드 길이 |
12888 KB | 172 ms | Kotlin (JVM) | 693 B |