Kotlin

Kotlin 문법 : split / toCharArray / toList (with. 프로그래머스)

깨비도 2024. 5. 8. 17:28

자릿수 더하기

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.

 

💡 풀이

class Solution {
    fun solution(n: Int): Int {        
        return n.toString().toCharArray().map{
            it.toString().toInt()
        }.sum()
    }
}
  1. n은 숫자형이기 때문에 각 자릿수에 접근하여 사용하기 위해 toString을 통해 문자열로 변환한다.
  2. 변환한 문자열을 음절 단위로 분리하여 배열로 반환하는 toCharArray 메소드를 사용한다.
  3. 반환된 배열 내부에서 map 메소드를 통해 문자열을 Int로 변환한다.
  4. sum() 메소드로 배열 내부의 값을 모두 더한다.

1. split()

일반적으로 문자열을 자를 때 가장 많이 사용하는 메소드는 split이다. 

fun example(n: Int){
	print("깨비도".split("")) // ["", "깨", "비", "도", ""]
}
  • split안에 "" 빈 String 값을 나누면 띄어쓰기를 포함한 음절 단위로 String을 쪼개준다.
  • 단, 빈 String으로 나눌 때에는 앞 뒤로 동일하게 빈 공백이 생기게 된다. 때문에 이 문제를 풀 때 split() 메소드를 사용하지 않았다.
fun example(n: Int){
	print("깨비도-보라-개발자".split("-")) // ["깨비도", "보라", "개발자"]
}
  • split안에 "-"과 같이 값을 쓰면 해당 값을 기준으로 String을 쪼개준다.

2. toCharArray()

toCharArray는 문자열을 split과 동일하게 음절단위로 쪼개어 분리해주지만 List<Char>또는 CharArray로 반환한다.

때문에 위 풀이에서 나는 charArray를 사용하고 음절들을 모두 toString()을 통해 String으로 바꾸어 사용했었다.

fun example(n: Int){
	print("깨비도".toCharArray()); // 깨비도
}

3. toList()

toList는 위 2가지 메소드와 동일하게 작동하지만 List<Char>으로 반환한다.

지금 보니 toCharArray를 사용하는 것보다 toList를 쓰는 것이 두 번 변환하지 않아도 되고 좋을 뻔 했다.

fun example(n: Int){
	print("깨비도".toList()); // ["깨", "비", "도"]
}

❗출처

참고 사이트 : https://kkong-93.tistory.com/61

 

Kotlin 한글자씩 String 분리하기

Kotlin에서 문자열을 한 글자씩 분리하려면, `toCharArray()` 또는 `toList()` 함수를 사용하여 문자열을 CharArray 또는 List로 변환하고 이를 처리할 수 있습니다. 다음은 두 가지 방법의 예시입니다: 1. `toCh

kkong-93.tistory.com