빠에야는 개발중
정수 내림차순으로 배치하기 본문
reverseInt 메소드는 int형 n을 매개변수로 입력받습니다.
n에 나타나는 숫자를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요.
예를들어 n이 118372면 873211을 리턴하면 됩니다.
n은 양의 정수입니다.
int형 정수의 각 자릿수를 쪼개는 것이 포인트라고 할 수 있다.
각각의 자릿수를 배열에 담아 내림차순 정렬하고, 다시 정수로 만들어주었다.
각 자릿수를 10 지수승 단위로 받으려고 했다가 꼬여서 단순히 일의 자리의 수를 가져오고 10씩 나누는 방법을 사용했다.
이 방법이 바로 생각나지 않아서 꽤 고민을 했다. 자괴감 타임...
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 32 33 34 35 36 37 38 39 | import java.util.Arrays; public class ReverseInt { public int reverseInt(int n){ int length=0; int temp=n; int result=0; while(temp!=0) { temp/=10; length++; } int arr[] = new int[length]; for(int i = 0; i<arr.length;i++) { arr[i] = n%10; n/=10; } Arrays.sort(arr); for (int i = 0; i < arr.length/2; i++) { int temp1; temp1 = arr[i]; arr[i] = arr[(arr.length - 1) - i]; arr[(arr.length - 1) - i] = temp1; } for(int i = 0; i<arr.length;i++) { result += arr[arr.length-1-i]*(int) Math.pow(10,i); } return result; } // 아래는 테스트로 출력해 보기 위한 코드입니다. public static void main(String[] args){ ReverseInt ri = new ReverseInt(); System.out.println(ri.reverseInt(118372)); } } | cs |
Comments