[프로그래머스/java] 자연수 뒤집어 배열로 만들기
리트리버J
·2020. 12. 27. 14:33
728x90
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요.
예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
나의 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
class Solution {
public int[] solution(long n) {
// long → String
String s = String.valueOf(n);
// reverse()메소드를 이용하기 위하여
// StringBuilder 인스턴스 생성
StringBuilder sb = new StringBuilder(s);
// reverse()로 문자열 뒤집기
sb = sb.reverse();
// String.split("")로 한 글자씩 잘라 배열에 담기
String[] stringArr = sb.toString().split("");
// 문자열 길이 만큼 배열 길이 할당
int[] answer = new int[sb.length()];
// String → int → int[]
for (int i=0; i < sb.length(); i++) {
answer[i] = Integer.parseInt(stringArr[i]);
}
return answer;
}
}
|
cs |
사이트 풀이
★ 포인트 ★
1) 문자열 + 숫자 = 문자열을 이용하여 쉽게 long → String으로 할당하는 것.
2) % 연산자를 이용하여 나머지 값을 이용하는 것
3) /= 연산자를 이용하여 반복 한 것
4) 0.1이 0으로 표시되는것을 활용하여 while반복문을 사용한 것
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
class Solution {
public int[] solution(long n) {
// 문자열 + 숫자 = 문자열
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;
}
}
|
cs |
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
728x90
'알고리즘 > 코딩테스트' 카테고리의 다른 글
[프로그래머스/java]이상한 문자 만들기 (0) | 2020.12.30 |
---|---|
[프로그래머스/java] 자릿수 더하기 (0) | 2020.12.29 |
[프로그래머스/java]정수 내림차순으로 배치하기 *버블정렬* (0) | 2020.12.26 |
[프로그래머스/java]제일 작은 수 제거하기 (0) | 2020.12.25 |
[프로그래머스/java]정수 제곱근 판별 (0) | 2020.12.23 |