문제 설명
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
제한사항
- n은 10,000,000,000이하인 자연수입니다.
입출력 예
코드
import java.util.*;
class Solution {
public int[] solution(long n) {
int len = (int)(Math.log10(n)+1);
int[] answer = new int[len];
for(int i=0; i<len; i++) {
answer[i] = (int)(n%10);
n = n/10;
}
return answer;
}
}
풀이
Math.log10(n)+1 을 하여 숫자의 길이를 구한 뒤 for문으로 n을 10으로 나눈 나머지를 구해 answer에 넣어주고, n을 10으로 나눠 n에 저장하는 과정을 반복하여 answer배열에 값을 넣어준다.
다른 코드와 풀이
아래의 코드는 다른 사람들이 작성한 것들로, 내 코드와 비교, 참고하기 위해 가져왔다.
import java.util.stream.IntStream;
class Solution {
public int[] solution(long n) {
return new StringBuilder().append(n).reverse().chars().map(Character::getNumericValue).toArray();
}
}
정수 n을 StringBuilder를 사용해 문자열을 뒤집은 후, 각각을 문자스트림으로 변환하여 문자형을 정수형으로 변환한다. 그리고 이것을 배열로 만들어 리턴해준다.
'Coding Test' 카테고리의 다른 글
231009 문자열을 정수로 바꾸기 - Level 1 (0) | 2023.10.09 |
---|---|
231008 문자열 내 p와 y의 개수 - Level 1 (0) | 2023.10.08 |
231006 자릿수 더하기 - Level 1 (1) | 2023.10.06 |
231006 x만큼 간격이 있는 n개의 숫자 - Level 1 (1) | 2023.10.06 |
231005 공배수 - Level 0 (1) | 2023.10.05 |