풀이

1. ArrayList 생성하고

2. n을 % 연산한 값을 ArrayLIst에 넣어줬다.

3. ArrayList -> array 변환 후 리턴

 

Integer ArrayList 를  int array로 변환하는 방법

int[] intArr = list.stream().mapToInt(i -> i).toArray();
 public static int[] solution(long n) {
        int[] answer = {};
        // List 생성
        List<Integer> arr = new ArrayList<Integer>();

        // List에 마지막요소부터 넣기
        while (n > 0) {
            int tmp = (int) n % 10;
            arr.add(tmp);
            n /= 10;
        }

        // Integer List -> int Array
        answer = arr.stream().mapToInt(i -> i).toArray();

        return answer;
    }

 

 

다른 풀이

n의 자리수의 길이를 갖는 int[] 배열을 만들어두고 

앞에서부터 차례로 넣기

 public static int[] solution(long n) {
        // 주어진 n이 몇자리인지 알아서 배열의 길이를 구하려고, n을 문자열로 변환 
        String a = "" + n;
        int[] answer = new int[a.length()];
        int idx = 0;

        // 배열의 index에 값 하나씩 넣기
        while (n > 0) {
            answer[idx] = (int) (n % 10);
            n /= 10;
            idx++;
        }
        return answer;
    }

참고

https://www.delftstack.com/ko/howto/java/how-to-convert-integer-list-to-int-array-in-java/

+ Recent posts