❓ 자연수 뒤집어 배열로 만들기
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
💡 풀이
class Solution {
fun solution(n: Long): IntArray {
var stringArray = n.toString().reversed().toList();
return stringArray.map{e -> e.toString().toInt()}.toIntArray()
}
}
- n은 Long타입이기 때문에 String으로 변환한다.
- String으로 변환된 n을 뒤집고 음절 단위로 끊어 배열로 변환한다.
- 이 때 toList()로 반환한 배열은 List<Char> 타입이다.
- 변환한 배열을 map으로 각 요소에 접근하여 Char문자를 String으로 변환하고, 다시 int화 시킨다.
- 변환한 map의 타입은 List이므로 toIntArray()로 타입을 변환해주면 된다.
1. Char
Char라는 타입이 생소해도 생각보다 많이 접해보았을텐데 Char는 음절 단위의 문자 1개를 말하고 작은 따옴표로 표기한다.
fun example(n: Int){
var stringArray = n.toString().reversed().toList();
print(stringArray); //[5, 4, 3, 2, 1]
print(stringArray.map{e -> e.toInt()}) //[53, 52, 51, 50, 49]
}
- 첫 번째 print로 출력된 stringArray 안의 값들은 모두 Char 타입의 '5', '4', '3', '2', '1'이다.
- 두 번째 print로 출력된 값을 보면 stringArray를 map을 통해 toInt()화 시킨 결과가 53, 52 ... 49임을 알 수 있다. 이는 문자열 5, 4, ... 1을 아스키코드 (ASCII Table)로 변환한 값이다.
2. String
일반적인 익히 알고 있는 문자열은 String이다. 여러개의 문자를 큰 따옴표로 표기하며 쉽게 Char로 이루어진 배열이라 생각하면 된다. String을 배열처럼 사용할 수 있는 이유이기도 하다.
fun example(n: Int){
var stringArray = n.toString().reversed().toList();
print(stringArray.map{e -> e.toString().toInt()}) //[5, 4, 3, 2, 1]
}
- stringArray는 List<Char> 타입이므로 map으로 순회하여 각 요소의 type을 먼저 String으로 바꿔준 뒤 Int화 시켜주어야 제대로 숫자형이 나오게 된다.
❗출처
참고 사이트1 : https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/to-list.html
참고 사이트2 : https://yenne.tistory.com/73
'Kotlin' 카테고리의 다른 글
Kotlin 문법 : filter (with. 프로그래머스) (0) | 2024.05.14 |
---|---|
Kotlin 문법 : Int와 Long의 차이 (with. 프로그래머스) (0) | 2024.05.13 |
Kotlin 문법 : split / toCharArray / toList (with. 프로그래머스) (0) | 2024.05.08 |
Kotlin 문법 : when 구문 (with. 프로그래머스) (0) | 2024.05.08 |
Kotlin 문법 : for 반복문 (with. 프로그래머스) (0) | 2024.05.07 |