관리 메뉴

나만을 위한 블로그

[Algorithm] 프로그래머스 - 숨어있는 숫자의 덧셈 (1) (Kotlin) 본문

알고리즘 문제 풀이/프로그래머스

[Algorithm] 프로그래머스 - 숨어있는 숫자의 덧셈 (1) (Kotlin)

참깨빵위에참깨빵_ 2022. 12. 29. 19:47
728x90
반응형
문자열이 매개변수로 주어질 때 문자열 안의 모든 자연수들의 합을 리턴하는 solution()을 완성하라

 

 

이것도 먼저 주먹구구식으로 풀어봤다.

 

class Solution {
    fun solution(str: String): Int {
        val a = str.split("")
        var result = 0
        for (i in a.indices) {
            if (a[i].toIntOrNull() != null) {
                result += a[i].toInt()
            }
        }

        return result
    }
}

 

이것은 아래처럼 줄일 수 있다.

 

class Solution {
    fun solution(str: String) = str.filter { Character.isDigit(it) }.sumOf { it.digitToInt() }
}

 

digitToInt()의 설명은 아래와 같다.

 

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/digit-to-int.html

 

digitToInt - Kotlin Programming Language

 

kotlinlang.org

Char가 나타내는 십진수의 숫자값을 반환한다. 이 Char가 유효한 십진수가 아니면 예외를 던진다. Char에 대해 isDigit이 true라면 Char는 십진수를 나타내는 것으로 간주된다. 이 경우 문자의 유니코드 십진수 값이 리턴된다

 

쉽게 말해서 변수에 담긴 문자가 숫자라면 이 함수를 써서 int로 바꿀 수 있다는 뜻이다.

sumOf {}는 이름에서도 알 수 있듯이 모든 값들을 합친 결과를 리턴하는 함수다. String과 sequences, 컬렉션에서 쓸 수 있다.

반응형
Comments