728x90
문제
풀이
- 각 자리수의 합을 구하는 식을 이용한다.
Ex) 216 => 1. 216 % 10 -> 일의 자리 수가 나옴 2. 216 / 10 -> 일의 자리 수를 제외한 수가 나옴 : 21 3. 1, 2번 과정을 n 이 0이 될때까지 반복하면 각 자리 수를 찾을 수 있음
- 각 자리수의 합과 현재의 숫자를 합하여 N 과 같으면 루프를 빠져 나온다.
import java.util.*
fun main(args: Array<String>) {
val sc = Scanner(System.`in`)
val N = sc.nextInt()
var min = 0
for (i in 1..N) {
val lsum = lineSum(i)
if (i + lsum == N) {
min = i
break
}
}
print(min)
}
private fun lineSum(_n: Int): Int {
var n = _n
var sum = 0
while (n > 0) {
sum += n % 10
n /= 10
}
return sum
}
728x90
'알고리즘' 카테고리의 다른 글
[알고리즘][KOTLIN] 정렬(선택 정렬, 버블 정렬, 삽입 정렬) - O(N^2) (0) | 2021.11.30 |
---|---|
[백준][KOTLIN][1018]체스판 다시 칠하기 (0) | 2021.11.30 |
[알고리즘][KOTLIN] 이진 탐색 (0) | 2021.11.22 |
[KOTLIN] 주어진 입력을 역순으로 출력하기 (0) | 2021.11.21 |
[KOTLIN][알고리즘] Brute Force(BF, 완전탐색) (0) | 2021.11.21 |