[ 프로그래머스 ] 정수 내림차순으로 배치하기 ( 자바 )
n이 118372면 873211을 리턴하기
n은 8000000000이하 숫자
https://programmers.co.kr/learn/courses/30/lessons/12933
구조 1
-
int타입 배열 생성, 크기는 Math.log10사용
-
%, / 를 이용해 (-1 x 값)배열채우기
-
소팅
-
-1 처리 후 답 생성
구조 2
-
char타입 배열 생성. toCharArray
-
소팅
-
거꾸로 답 생성
추가적으로 더 궁금한 점 있으면 댓글 달아주세요
코드 1
숫자 그대로 이용해서 답 계산
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import java.util.*;
class Solution {
public long solution(long n) {
long[] arr = new long[(int)Math.log10(n)+1];
int i = 0;
long div = 10;
while(n!=0) {
arr[i++] = -n%div;
n /= 10;
}
Arrays.sort(arr);
long ans = 0;
for(i = 0 ; i < arr.length ;i++ ) {
ans += -arr[i];
ans *= 10;
}
System.out.println(ans/10);
return ans/10;
}
}
|
cs |
코드 2
char로 변환해서 답 계산
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import java.util.*;
class Solution {
public long solution(long n) {
char[] input = Long.toString(n).toCharArray();
Arrays.sort(input);
long ans = 0;
for (int i = input.length-1; i >= 0 ; i--) {
ans += input[i] - '0';
ans *= 10;
}
System.out.println(ans/10);
return ans/10;
}
}
|
cs |
'CS > 알고리즘 풀이' 카테고리의 다른 글
[프로그래머스] 최대공약수와 최소공배수 ( java ) (0) | 2019.12.13 |
---|---|
[ 프로그래머스 ] 찾아라 프로그래밍 마에스터- 포켓몬 ( java ) (0) | 2019.12.12 |
[ 프로그래머스 ] 문자열을 정수로 바꾸기 ( java ) (0) | 2019.12.06 |
[ 프로그래머스 ] 시저암호 ( java ) (0) | 2019.12.06 |
[ 프로그래머스 ] 자연수 뒤집어 배열로 만들기 ( java ) (0) | 2019.12.06 |