본문 바로가기
Coding Test

231007 자연수 뒤집어 배열로 만들기 - Level 1

by mmm- 2023. 10. 7.

문제 설명

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

제한사항

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

 

입출력 예


코드

import java.util.*;

class Solution {
    public int[] solution(long n) {
        int len = (int)(Math.log10(n)+1);
        int[] answer = new int[len];
        
        for(int i=0; i<len; i++) {
            answer[i] = (int)(n%10);
            n = n/10;
        }
        
        return answer;
    }
}

 

풀이

Math.log10(n)+1 을 하여 숫자의 길이를 구한 뒤 for문으로 n을 10으로 나눈 나머지를 구해 answer에 넣어주고, n을 10으로 나눠 n에 저장하는 과정을 반복하여 answer배열에 값을 넣어준다.


다른 코드와 풀이

아래의 코드는 다른 사람들이 작성한 것들로, 내 코드와 비교, 참고하기 위해 가져왔다.

import java.util.stream.IntStream;

class Solution {
    public int[] solution(long n) {
        return new StringBuilder().append(n).reverse().chars().map(Character::getNumericValue).toArray();
    }
}

정수 n을 StringBuilder를 사용해 문자열을 뒤집은 후, 각각을 문자스트림으로 변환하여 문자형을 정수형으로 변환한다. 그리고 이것을 배열로 만들어 리턴해준다.