728x90
문제 설명
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
제한 조건- n은 10,000,000,000이하인 자연수입니다.
n | result |
12345 | [5,4,3,2,1] |
1
2
3
4
5
6
7
8
9
10
|
class Solution {
public int[] solution(long n) {
int[] answer = new int[(n+"").length()];
char[] chars = new StringBuffer(n+"").reverse().toString().toCharArray();
for(int i=0;i<chars.length;i++) {
answer[i] = chars[i]-'0';
}
return answer;
}
}
|
cs |
자연수 n을 문자열로 만들어 길이를 구하여 리턴되는 배열의 크기를 구하고 자연수 n을 문자열로 만들어 다시 StringBuffer객체로 만들고 reverse() 메서드로 문자열을 뒤집고 toString() 메서드로 String으로 만들고 toCharArray() 메서드를 호출하여 char배열을 만들어서 배열을 반복하며 -'0'을 하여 숫자로 만들어 배열에 저장하였다. |
1
2
3
4
5
6
7
8
9
10
|
class Solution {
public int[] solution(long n) {
int[] answer = new int[(n+"").length()];
for(int i=0;n>0;i++) {
answer[i] = (int)(n % 10);
n /= 10;
}
return answer;
}
}
|
cs |
자연수 n을 문자열로 만들어 길이를 구하여 리턴되는 배열의 크기를 구하고 %10하여 뒷자리 1자리씩 잘라서 배열에 차례대로 넣는다. 반복할때마다 /10을 하여 배열에 넣은 마지막 자리를 잘라서 버린다. |
1
2
3
4
5
6
7
|
class Solution {
public int[] solution(long n) {
return new StringBuilder(n+"").reverse()
.chars().map(v->v-'0')
.toArray();
}
}
|
cs |
new StringBuilder(n+"").reverse() 이용하여 뒤집은 문자열을 만들고
chars()를 이용하여 IntStream으로 만들고 위에서 만들어진 IntStream은 문자의 ASCII코드 값들이므로 -'0'을 하여 숫자로 변환한다, 마지막으로 toArray()를 이용하여 int배열을 리턴한다. |
728x90
'프로그래머스 코딩(자바) > Level 1' 카테고리의 다른 글
Programmers Level 1 - 정수 제곱근 판별 (0) | 2023.03.08 |
---|---|
Programmers Level 1 - 문자열 내 p와 y의 개수 (0) | 2023.03.08 |
Programmers Level 1 - x만큼 간격이 있는 n개의 숫자 (0) | 2023.03.08 |
Programmers Level 1 - 자릿수 더하기 (0) | 2023.03.08 |
Programmers Level 1 - 평균 구하기 (0) | 2023.03.08 |