Kotlin

Kotlin 문법 : Char와 String (with. 프로그래머스)

깨비도 2024. 5. 9. 16:53

자연수 뒤집어 배열로 만들기

자연수 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()
    }
}
  1. n은 Long타입이기 때문에 String으로 변환한다.
  2. String으로 변환된 n을 뒤집고 음절 단위로 끊어 배열로 변환한다.
    • 이 때 toList()로 반환한 배열은 List<Char> 타입이다.
  3. 변환한 배열을 map으로 각 요소에 접근하여 Char문자를 String으로 변환하고, 다시 int화 시킨다.
  4. 변환한 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

 

toList - Kotlin Programming Language

 

kotlinlang.org

참고 사이트2 : https://yenne.tistory.com/73

 

[프로그래머스] 자연수 뒤집어 배열로 만들기 / Kotlin

https://programmers.co.kr/learn/courses/30/lessons/12932 코딩테스트 연습 - 자연수 뒤집어 배열로 만들기 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [

yenne.tistory.com