문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건
- n은 1이상 8000000000 이하인 자연수입니다.
Step1. 문제분석
길이만큼 반복문으로 돌고 이를 문자열을 하나씩 배열에 담아 준다.
그 후 오름차순으로 정렬하고, 그 값들을 다시 역순으로 배열에 담아준다.
배열에 담은 값을 Long타입으로 다시 변환해준다.
Step2. 문제풀이 코드
import java.util.*;
class Solution{
public long solution(long n){
String str = n + "";
String ans = "";
char[] arr = new char[str.length()];
for (int i = 0; i < str.length(); i++){
arr[i] = str.charAt(i);
}
Arrays.sort(arr);
for (int i = arr.length - 1; i >= 0; i--){
ans += arr[i];
}
return Long.parseLong(ans);
}
}
Step3. 다른 사람의 풀이 코드
public class ReverseInt {
String res = "";
public int reverseInt(int n){
res = "";
Integer.toString(n).chars().sorted().forEach(c -> res = Character.valueOf((char)c) + res);
return Integer.parseInt(res);
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
public static void main(String[] args){
ReverseInt ri = new ReverseInt();
System.out.println(ri.reverseInt(118372));
}
}
'Java > 알고리즘' 카테고리의 다른 글
[프로그래머스/알고리즘] 제일 작은 수 제거하기 (자바/Java) (0) | 2022.11.24 |
---|---|
[프로그래머스/알고리즘] 정수 제곱근 판별(자바/Java) (0) | 2022.11.23 |
[프로그래머스/알고리즘] 자연수 뒤집어 배열로 만들기(자바/Java) (0) | 2022.11.21 |
[프로그래머스/알고리즘] 자릿수 더하기(자바/Java) (0) | 2022.11.21 |
[프로그래머스/알고리즘] 이상한 문자 만들기 (자바/Java) (0) | 2022.11.21 |
댓글