한 덩어리의 숫자를 쪼개서 값을 더해야한다.
아무리 봐도 이해가 가지 않아서 풀이를 보고 풀었다.
class Solution {
fun solution(n: Int): Int {
var answer = 0
val str: String = n.toString()
val numbers = str.toCharArray().map { it.digitToInt() }
answer = numbers.sum()
return answer
}
}
- n을 String으로 변환시킨다.
- String으로 변환시킨 n을 Char로 쪼갠다.
- map으로 Int 타입으로 변경시킨다.
(문자 변수를 그대로 Int 시키면 아스키코드이기 때문에 변환이 제대로 되지 않는다.
digitToInt()를 사용하면 숫자 그대로 출력이 된다.
다른사람의 풀이
class Solution {
fun solution(n: Int): Int {
var input = n
var answer = 0
while (input != 0) {
answer += input % 10
input /= 10
}
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
return answer
}
}
10진수의 특성을 이용한 풀이식이다.
진수에 대한 공부를 안해서 난 이 풀이식이 도저히 무슨 뜻인지 모르겠다..
왜 %10을 하고 /10을 해야되는걸까?? 알아보고 글을 수정해야겠다.
'Algorithm' 카테고리의 다른 글
프로그래머스 코딩테스트 / 나머지가 1이 되는 수 (1) | 2024.01.10 |
---|---|
프로그래머스 코딩테스트 / 약수의 합 (1) | 2023.12.24 |