Algorithm

프로그래머스 코딩테스트 / 자릿수 더하기

공부처음하는사람 2023. 12. 24. 00:58

한 덩어리의 숫자를 쪼개서 값을 더해야한다.
아무리 봐도 이해가 가지 않아서 풀이를 보고 풀었다.

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
    }
}
  1. n을 String으로 변환시킨다.
  2. String으로 변환시킨 n을 Char로 쪼갠다.
  3. 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을 해야되는걸까?? 알아보고 글을 수정해야겠다.