문제 링크 - https://programmers.co.kr/learn/courses/30/lessons/12932
- 해결 방법
- 배열로 만들어 역 정렬을 이용하여 풀 수도 있지만,
조금 더 간단한 방법을 사용해 보았다.
자연수에서 일의 자리부터 차례로 배열에 담기는 것이므로
계속 10으로 나누어 넣는 방법을 생각하였다.
배열을 생성하는 과정에서 자릿수가 필요해 동적으로 사용할 수 있는
ArrayList를 사용할까 했지만 연습도 할 겸 자릿수를 구해 배열을 생성하였다.
class Solution {
public long[] solution(long n) {
long tmp = n;
int digit = 0;
while(true){ //계속 10으로 나누면서 자릿수 계산
if(tmp==0) break; //0이 된다면 끝!
tmp/=10;
digit++;
}
long arr [] = new long [digit];
for(int i=0;i<digit;i++){
arr[i] = n%10; // 10으로 나누면서 나머지 삽입
n/=10; // 10으로 나누고 자신에게 대입
}
return arr;
}
}