프로그래머스 정수 내림차순 정렬
문제
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한사항
- n은 1이상 8000000000 이하인 자연수입니다.
입출력 예
풀이
import java.util.Arrays;
import java.util.Comparator;
public class ReverseSort {
public static void main(String[] args) {
ReverseSort t = new ReverseSort();
long l = 118372;
long solution = t.solution(l);
System.out.println("solution = " + solution);
}
public long solution(long l) {
long answer = 0;
//long을 받아서 decs으로 정령해야함
char[] chars = String.valueOf(l).toCharArray();
int leng = chars.length;
Integer[] arr = new Integer[leng];
for(int i=0; i<leng; i++){
arr[i] = chars[i] - '0'; //숫자로 변환
}
Arrays.sort(arr, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
if(o1>o2) return 1;
return -1;
}
});
for(int i=0; i<leng; i++){
answer += (long) (arr[i] * Math.pow(10,i));
}
return answer;
}
}
import java.util.Arrays;
import java.util.Comparator;
public class ReverseSort {
public static void main(String[] args) {
ReverseSort t = new ReverseSort();
long l = 118372;
long solution = t.solution(l);
System.out.println("solution = " + solution);
}
public long solution(long l) {
long answer = 0;
//long을 받아서 decs으로 정령해야함
char[] chars = String.valueOf(l).toCharArray();
int leng = chars.length;
Integer[] arr = new Integer[leng];
for(int i=0; i<leng; i++){
arr[i] = chars[i] - '0'; //숫자로 변환
}
Arrays.sort(arr, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
if(o1>o2) return 1;
return -1;
}
});
for(int i=0; i<leng; i++){
answer += (long) (arr[i] * Math.pow(10,i));
}
return answer;
}
}
java의 sort와 Comparator를 사용하여 풀 수 있는 간단한 문제다. 근데 왜 정리해놨냐? Comparator를 사용함에 있어 제한 사항이 있기 때문에 그걸 정리해놓으려고 쓴다!
- 기본 자료형 int, long, double, char 등은 사용할 수 없다!
- Wrapper class인 String, Intger 등을 사용해야한다!
이 위의 주의점을 알고 사용하면 된다. 평소에 String으로 문제를 거의 대부분 풀다 보니 Comparator를 실제로 정렬할때 사용하면 자료형에서 막혀서 답답한 경우가 생긴다. 그럴땐 위 주의점을 알고 있다면 쉽게 해결해 나갈 수 있을 것이다!
Comparator는 Wrapper class type만 적용 가능하다!
Author And Source
이 문제에 관하여(프로그래머스 정수 내림차순 정렬), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ililil9482/프로그래머스-정수-내림차순-정렬저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)