본문 바로가기
Kotlin/Programmers Algorithm

[프로그래머스 - 코틀린] 자릿수 더하기 #12931

by eun.24k 2023. 10. 20.

#12931

문제

🧩 Thought Process

  1. 숫자를 문자열로 바꾼다.
  2. 문자열을 char 배열로 바꾼다.
  3. 각 배열의 엘레먼트를 정수형으로 바꾼다.
  4. 배열에 있는 모든 수를 더한다.
class Solution {
    fun solution(n: Int): Int {
        var answer = 0
        var nString = n.toString()             // 1. 숫자를 문자열로 바꾼다.
        var nCharArray = nString.toCharArray() // 2. 문자열을 CharArray로 바꾸어준다.
        var arraySize = nCharArray.size        // array size를 찾아준다.
        val nIntArray = nCharArray.map(Char::toInt) //3.Array 안의 elements를 정수형으로 바꾸어준다.
        
        println(nIntArray)         // 정수형으로 바뀐 정수형 array 확인
        println(nIntArray[0])
        println(nIntArray[1])
        println(nIntArray[2])
        
        return answer
    }
}

어제 한침 이 문제에 봉착해 있었다.

charArray를 IntArray로 바꾸자 IntArray가 [55, 56, 57]을 출력했기 때문이다. 원래 [1,2,3]이 나와야하는데...

 

이 에러는 아래 웹사이트에서 해결책을 찾았다..

https://blog.jdriven.com/2019/10/converting-char-to-int-in-kotlin/

 

Converting Char to Int in Kotlin

The Kotlin standard library contains a lot of helper functions on top of the Java standard library for our convenience. Some of those functions help us in converting between different data types. For

blog.jdriven.com

 

.toInt() 대신에 .digitToInt()를 입력해보았다. (됐다아아아아ㅏ!!)

 

class Solution {
    fun solution(n: Int): Int {
        var answer = 0
        var nString = n.toString()               // 1. 숫자를 문자열로 바꾼다.
        var nCharArray = nString.toCharArray()   // 2. 문자열을 CharArray로 바꾸어준다.
        var arraySize = nCharArray.size          // array size를 찾아준다.
        for (i in 0 until arraySize) {           // 4. for loop 사용해서 모든 자리수를 더해준다
            answer += nCharArray[i].digitToInt() // .digitToInt()를 사용해서 모든 자리수를 정수형으로 변환시켜준다.
        }
        return answer
    }
}

한참 막혔다가 풀리니까 개운하다! :)))