자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
n은 10,000,000,000이하인 자연수입니다.
n | return |
---|---|
12345 | [5,4,3,2,1] |
class Solution {
public int[] solution(long n) {
int[] answer = new int[(int) n];
for(int i = 0; i < answer.length; i++) {
if (answer[i+1] > answer[i]){
answer[i] = answer[i+1];
}
}
return answer;
}
}
구현 실패
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 12345 out of bounds for length 12345
at Solution.solution(Unknown Source)
at SolutionTest.lambdamain$0(Unknown Source) at SolutionTestSolutionRunner.run(Unknown Source)
at SolutionTest.main(Unknown Source)
테스트 결과 (~˘▾˘)~
1개 중 0개 성공
class Solution {
public int[] solution(long n) {
// 문자열(String) + 숫자 = 문자열(String)
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;
}
}
새롭게 알게된 점
- 문자열(String) + 숫자 = 문자열(String)
String a = "" + n;
- int의 길이 구하기
- int[] answer = new int[a.length()];