알고리즘 CODEKATA 17 (자연수 뒤집어 배열로 만들기)

오리너구리·2024년 5월 24일
0

CODEKATA

목록 보기
17/57

문제 설명

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


제한 조건

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

내 풀이

class Solution {
    fun solution(n: Long): IntArray {
       
        val nStr = n.toString()
        val num = nStr.length
        val answer = IntArray(num)
        
        for (i in nStr.indices) {
            answer[i] = nStr[i].toString().toInt()
        }
        
        return answer.reversedArray()
    }
}

일단 n을 문자열로 만들어서 배열에 넣어야 할 것 같았는데

순서를 바꿔야해서 수학적인 공식을 고민하다가

reversedArray()라는 함수를 사용하면 될 것같아서 해봤다.

nStr 이라는 변수에 n을 문자열로 만들어 저장하고

num 변수에 nStr문자열의 길이를 저장함

for 문으로 문자열의 인덱스 만큼 반복해서 answer 에 i 인덱스 에 nStr의 i 인덱스 값을 Int로 변환해서 넣어주고

(여기서 nStr[i].toInt()가 아닌 이유는

문자열에 저장될때 Char로 저장되는데 Char에서 1을 그냥 Int로 변환하면

우리가 원하는 숫자 값이 아니라 해당 문자의 ASCII 값으로 변환 되기 때문임

리턴할때 reversedArray() 함수로 배열의순서를 뒤집어서 리턴해줌

profile
오리너구리입니다

0개의 댓글