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

KSang·2023년 11월 29일
0

[Kotlin]코드카타

목록 보기
16/100

문제설명

자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.

제한사항

n은 10,000,000,000이하인 자연수입니다.

진행

일단 자릿수를 알아보자 반복문을 사용해 10씩 나눠주게 된다면 몇자리수인지 알게 되고

배열의 크기를 정할수 있다

나눠주면서 나머지를 구하면 원소로 넣을수 있다

여기서 고민이된게 10씩나눠서 먼저 몇자리 수인지 알고 배열의 크기를 정한뒤 배열을 정의한다음

나머지를 구하면서 배열에 넣어야하는데 비슷한과정을 2번 반복해야된다는게 마음에 들지 않는다

이전에 썻던 가변리스트를 써보자

var answer = mutableListOf<Int>() 

반복문을 써주자 한번 반복될때마다 10으로 나눠 나머지를 구해주고 .add()함수를 써 배열에 추가

입력된값을 10으로 나눠주고 반복하면 끝

 while (x > 0){
        var result = x % 10
        answer.add(result)
        x /= 10
    }

코드

package com.example.codekata

fun main() {

    println("정수를 입력하세요")
    val x = readln().toInt()
    if (x > 10000000000){
        println("숫자가 너무 큽니다")
    }
    else if (x < 0){
        println("자연수만")
    }
    else
    println("${solution(x).joinToString(" , ")}")
}
fun solution(n: Int): MutableList<Int> {
    var answer = mutableListOf<Int>() //가변리스트
    var x = n

    while (x > 0){
        var result = x % 10
        answer.add(result)
        x /= 10
    }

    return answer
}

0개의 댓글