❓ 자릿수 더하기
자연수 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()
}
}
- n은 숫자형이기 때문에 각 자릿수에 접근하여 사용하기 위해 toString을 통해 문자열로 변환한다.
- 변환한 문자열을 음절 단위로 분리하여 배열로 반환하는 toCharArray 메소드를 사용한다.
- 반환된 배열 내부에서 map 메소드를 통해 문자열을 Int로 변환한다.
- 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' 카테고리의 다른 글
Kotlin 문법 : filter (with. 프로그래머스) (0) | 2024.05.14 |
---|---|
Kotlin 문법 : Int와 Long의 차이 (with. 프로그래머스) (0) | 2024.05.13 |
Kotlin 문법 : Char와 String (with. 프로그래머스) (0) | 2024.05.09 |
Kotlin 문법 : when 구문 (with. 프로그래머스) (0) | 2024.05.08 |
Kotlin 문법 : for 반복문 (with. 프로그래머스) (0) | 2024.05.07 |