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 |