자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
N의 범위 : 100,000,000 이하의 자연수
class Solution
{
fun solution(n: Int): Int = n.toString().toList().sumOf { it.digitToInt() }
}
오늘 1차 시도에서 바로 성공 !!
n.toString()
n을 가장 먼저 문자열로 변환한 후
.toList()
문자열을 리스트로 변환한다.
.sumOf
리스트의 각 문자를 정수로 변환한 후 합산한다.
it.digitToInt()
마지막으로 그 리스트 들을 정수로 변환한다. "1", "2", "3" > 1, 2, 3
class Solution
{
fun solution(n: Int): Int
{
var input = n
var answer = 0
while (input != 0)
{
answer += input % 10
input /= 10
}
return answer
}
}
var input = n
가독성과 변경 가능성, 안전성을 고려했을 때 원래의 n값은 보존하고, 새로운 변수 input을 사용하여 반복문 내에서 작업하기
while (input != 0)
input이 0이 아닐 때까지 작업을 반복한다.
answer += input % 10 input /= 10
예를 들어 n이 123이면 input에 할당한 후, 123의 마지막 자릿수 3을 answer에 더하면 120이 남는다. 120을 10으로 나누면 12가 되어 다시 마지막 자릿수 2을 더하고 이전과 똑같이 반복한다.