알고리즘/프로그래머스

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

mrban 2022. 1. 18. 22:50

1. 문제

매개변수로 받은 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열을 리턴하는 함수를 만드시오. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴한다.

 

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

 

3. 정답
class Solution {
    public int[] solution(long n) {
        int length = (int)(Math.log10(n) + 1);
        int[] answer = new int[length];

        for (int i = 0; i < length; i++) {
            answer[i] = (int)(n % 10);
            n /= 10;
        }
        return answer;
    }
}
 

4. 설명

4-1. 입력받은 자연수 n의 길이를 구하기 위해 log함수를 이용하여 로그값을 구한 뒤에 +1을 더해주었다.

4-2. 그 길이만큼 int 배열을 만들어준다.

4-3. for문을 배열의 길이만큼 돌리는데 n % 10을 통해 일의자리 숫자만 떼어 배열에 넣어주고 원래 자연수 n은 n / 10을 통해 일의자리를 때버린다. 단, n % 10은 long형이므로 int 배열에 넣어주기 위해서 (int)형변환을 해준다.

4-4. 배열을 return한다.

'알고리즘 > 프로그래머스' 카테고리의 다른 글

정수 제곱근 판별(JAVA)  (0) 2022.01.19
정수 내림차순으로 배치하기(JAVA)  (0) 2022.01.19
자릿수 더하기(JAVA)  (0) 2022.01.18
이상한 문자 만들기(JAVA)  (0) 2022.01.18
완주하지 못한 선수(JAVA)  (0) 2022.01.18