
이 문제는 자연수 n을 뒤집어서 각 자리 숫자를 원소로 가지는 형태로 바꾸는 문제이다.
자연수 n이 12345이면 5, 4, 3, 2, 1 이런식으로 반환하는 것이다. 일단 접근은 Stirng으로 하였고 .valueof()를 써서 자연수 n을 문자열로 반환하는 함수를 사용하였다. String.valueof()를 쓰면 형변환이 자유롭기 때문에 사용하면 편리하다.
for (int i = 0; i < s.length(); i++) { answer[i] = s.charAt(s.length() - 1 - i) - '0'; }
반복문은 n번 실행된다.
(i + 1)을 사용하는 이유는 첫 번째 값이 x × 1이 되도록 하기 위함이다.
(long) x로 연산 전에 형변환을 하여 곱셈이 long 타입으로 수행되게 만든다.
이는 아스키 코드에서 '5' - '0'처럼 연산 전에 타입을 바꿔 정확한 결과를 얻는 방식과 같다. 이를 통해 int 오버플로우를 방지하고 안전한 값을 저장한다. 그럼 전체 코드를 봐보자
class Solution {
public int[] solution(long n) {
String s = String.valueOf(n);
int[] answer = new int[s.length()];
for (int i = 0; i < s.length(); i++) {
answer[i] = s.charAt(s.length() - 1 - i) - '0';
}
return answer;
}
}
public class Main {
public static void main(String[] args) {
Solution sol = new Solution();
long n = 12345;
int[] result = sol.solution(n);
for (int i = 0; i < result.length; i++) {
System.out.print(result[i] + " ");
}
}
}
Solution 메서드를 호출하여 메서드에서 반환한 결과를 result 배열에 저장하고 반복문을 통해 배열의 모든 요소를 띄어쓰기를 기준으로 출력한다.

n = 12345인 경우 5 4 3 2 1로 출력되는 것을 볼 수 있다.
