자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
class Solution {
fun solution(n: Int): Int {
var answer = 0
var num = n
while(num>=1){
answer += (num %10)
num /= 10
}
return answer
}
}
풀면서 자릿수 어떻게 구해야 될지 감이 안 와서
인터넷에 검색해봤음
class Solution {
fun solution(n: Int): Int {
return n.toString().toSingleDigitList().sum()
}
fun String.toSingleDigitList() = map {
"$it".toIntOrNull()
}.filterNotNull()
}
확장함수를 만들어서 푼 사람도 있었다.
확장함수로 toSingleDigitList를 문자열의 각 문자를 정수로 변환하고 리스트로 만드는 기능으로 만들었다.
class Solution {
fun solution(n: Int): Int {
var answer : Int = 0
for(item in n.toString().toCharArray()) answer += (item - '0')
return answer
}
}
이렇게 n을 문자열로 변환하고 → 문자 배열로 변환하고 , 각 문자를 다시 숫자로 변환해서 더 하는 방식으로 풀수도 있다!
item - ‘0’ 부분에서는 ASCII 코드 값을 이용한 변환이라고하는데 따로 검색해서 공부해야 할듯!