[2020-11-17] 정수 내림차순으로 배치하기
2020. 11. 17. 17:53ㆍ코딩테스트
푼 시간 : 30분
언어 : 자바
programmers.co.kr/learn/courses/30/lessons/12933
코딩테스트 연습 - 정수 내림차순으로 배치하기
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이
programmers.co.kr
역정렬을 하는데 long형이라서 형변환을 하고
Math.pow가 double이었기에 cnt도 형변환을 해야 해서
할것이 매우 많은 문제였다.
요새 문자나 숫자 정렬하는
문제를 많이 푸는 것 같다 ㅎㅎㅎ
import java.util.*;
class Solution {
public long solution(long n) {
long answer = 0;
int swap=0;
int[] a=new int[(int)(Math.log10(n)+1)];
// 정렬 할 배열
double cnt=Math.pow(10, a.length-1);
// 10을 제곱한다
for(int i=0; i<a.length; i++){
a[i]=(int)(n%10);
n/=10;
}
Arrays.sort(a);
// 정렬
for(int i=a.length-1; i>=0; i--){
// 역정렬을 위해 --
answer+=(long)(a[i]*cnt);
// 역정렬을 한다.
System.out.println(a[i]+" "+cnt);
cnt/=10;
}
System.out.println(answer);
return answer;
}
}
'코딩테스트' 카테고리의 다른 글
[2020-11-19] 제일 작은 수 제거하기 (0) | 2020.11.19 |
---|---|
[2020-11-18] 정수 제곱근 판별도움말 (0) | 2020.11.18 |
[2020-11-16] 이상한 문자 만들기 (0) | 2020.11.16 |
[2020-11-13] 약수의 합 (0) | 2020.11.13 |
[2020-11-12] 문자열을 정수로 바꾸기 (0) | 2020.11.12 |