문제 설명
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
제한사항
n은 10,000,000,000이하인 자연수입니다.
입출력 예
import java.util.*;
class Solution {
public int[] solution(long n) {
int[] result = {};
int mod = 0;
ArrayList<Integer> arrList = new ArrayList<>();
// 1. 10으로 나눈 나머지로 자릿수 구함 (내림차순)
// 2. 10으로 나눈 몫으로 자릿수 이동
while(n > 0){
mod = (int) (n % 10);
arrList.add(mod);
n /= 10;
}
result = new int[arrList.size()]; // 3. 담겨진 길이 만큼 배열 선언
for (int i = 0; i < result.length; i++)
result[i] = arrList.get(i); // 4. 배열 저장
return result;
}
}
class Solution {
public int[] solution(long n) {
// 문자열 + 숫자 = 문자열
String a = "" + n;
int[] answer = new int[a.length()];
int cnt = 0;
while (n > 0) {
// 1) 12345 % 10 = 5
// 2) 1234 % 10 = 4
// 3) 123 % 10 = 3
// 4) 12 % 10 = 2
// 5) 1 % 10 = 1
answer[cnt] = (int) (n % 10);
// 12345 = 1234
// 1234 = 123
// 123 = 12
// 12 = 1
// 1 = 0 ( 0.1 )
n /= 10;
cnt++;
}
return answer;
}
}
class Solution {
public int[] solution(long n) {
// long → String
String s = String.valueOf(n);
// reverse()메소드를 이용하기 위하여
// StringBuilder 인스턴스 생성
StringBuilder sb = new StringBuilder(s);
// reverse()로 문자열 뒤집기
sb = sb.reverse();
// String.split("")로 한 글자씩 잘라 배열에 담기
String[] stringArr = sb.toString().split("");
// 문자열 길이 만큼 배열 길이 할당
int[] answer = new int[sb.length()];
// String → int → int[]
for (int i=0; i < sb.length(); i++) {
answer[i] = Integer.parseInt(stringArr[i]);
}
return answer;
}
}