http://tryhelloworld.co.kr/challenge_codes/118
( 문제 ) Level2
reverseInt 메소드는 int형 n을 매개변수로 입력받습니다.
n에 나타나는 숫자를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요.
예를들어 n이 118372면 873211을 리턴하면 됩니다.
n은 양의 정수입니다.
( 구현 - 자바 )
ReverseInt.java
public class ReverseInt {
public int reverseInt(int n){
String tmp = String.valueOf(n);
int[] arr = new int[tmp.length()];
for (int i = 0; i < tmp.length(); i++) {
arr[i] = Integer.parseInt(tmp.substring(i, i+1));
}
// 선택 정렬
for (int i = 0; i < arr.length; i++) {
for(int j=0; j < arr.length-1; j++){
if(arr[j] < arr[j+1]){
int value = arr[j];
arr[j] = arr[j+1];
arr[j+1] = value;
}
}
}
StringBuffer sb = new StringBuffer();
for (int i = 0; i < arr.length; i++) {
sb.append(arr[i]);
}
int result = Integer.parseInt(sb.toString());
return result;
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
public static void main(String[] args){
ReverseInt ri = new ReverseInt();
System.out.println(ri.reverseInt(118372));
}
}
( 결과 출력 )
873211
실행시간: 83ms
'개발' 카테고리의 다른 글
[MariaDB] ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. (0) | 2017.05.19 |
---|---|
[알고리즘 문제] 콜라츠 추측 (0) | 2017.05.10 |
[알고리즘 문제] 하샤드수 (0) | 2017.04.20 |
[알고리즘 문제] 2016년 (특정일 요일 구하기) (0) | 2017.04.19 |
[알고리즘 문제] 행렬의 덧셈 (0) | 2017.04.12 |