728x90
반응형
문제
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. (n은 10,000,000,000이하인 자연수입니다.)
Solution 코드
class Solution {
public long[] solution(long n) {
long temp=n; //n은 10,000,000,000이하인 자연수이기 때문에 int가 아닌 long
int count=0;
//배열의 크기를 정하기 위함
for(;temp>0;){
temp /= 10;
count++;
}
long[] answer = new long[count];
for(int i=0;n>0;i++){
answer[i]=n%10;
n /= 10;
}
return answer;
}
}
- n은 10,000,000,000이하인 자연수이기 때문에 int가 아닌 long으로 선언된다.
- 배열의 크기를 정하기 위해서 count 변수를 이용하여 자리값을 구한다. n이 12345이면 temp는 1234→123→12→1→0 순으로 반복되어 count는 5가 된다.
- n이 12345일 때 [5,4,3,2,1]을 리턴하기 위해서, n을 10으로 나누었을 때의 나머지 값을 배열에 넣고 10을 나눈 값으로 다음 반복문을 실행한다. 12345를 10으로 나눈 나머지는 5이고, 12345를 10으로 나눈 값은 1234이다. 1234를 10으로 나눈 나머지는 4이고, 1234를 10으로 나눈 값은 123이다. 이 행위를 0이 될 때까지 반복한다.
- n의 값이 0이 되면 더 나눌 수 없다는 것을 의미하기 때문에 반복을 종료한다.
728x90
반응형
'문제 > JAVA' 카테고리의 다른 글
| [JAVA] 문자열을 정수로 바꾸기 (2) | 2023.05.29 |
|---|---|
| [JAVA] 문자열 내 p와 y의 개수 (0) | 2023.05.29 |
| [JAVA] x만큼 간격이 있는 n개의 숫자 (0) | 2023.05.29 |
| [JAVA] 약수의 합 (0) | 2023.05.29 |
| [JAVA] 옹알이 (0) | 2023.05.28 |