문제 설명
자연수 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 = {};
return answer;
}
}
정답 코드
class Solution {
public int[] solution(long n) {
String str = ""+n;
int len = str.length();
int[] answer = new int[len];
for(int i=0; i<len;i++) {
answer[i] = (int)(n%10);
n/=10;
}
return answer;
}
}
코드 설명
정수 + 문자열은 값이 문자열로 계산된다.
문자열로 바뀐 str로 length() 메소드를 사용하여 길이를 알아낸 후 동적 할당을 통해 answer를 선언한다. 이때 방의 크기는 알아낸 길이로 잡는다.
answer의 각 방은 n을 10으로 나눠준 나머지를 넣는다. 이때 n은 long형이기 때문에 int형으로 형변환을 해준다.
이 문제는 자연수를 뒤집어서 배열에 넣는 문제인데 끝자리부터 계산하기 때문에 별도로 뒤집진 않는다.
n을 10으로 나눈 나머지를 answer에 담은 후 다음 자리를 계산하기 위해 10으로 나눈 값을 다시 n에 넣는다.
'programmers-코딩테스트 연습 > Level 1. 자바' 카테고리의 다른 글
2021-06-11 / 정수 제곱근 판별 (0) | 2021.06.11 |
---|---|
2021-06-10 / 자릿수 더하기 (0) | 2021.06.10 |
2021-06-09 / 이상한 문자 만들기 (0) | 2021.06.09 |
2021-06-09 / 약수의 합 (0) | 2021.06.09 |
2021-06-08 / 수박수박수박수박수박수? (0) | 2021.06.08 |