728x90
정수 내림차순으로 배치하기
문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건- n은 1이상 8000000000 이하인 자연수입니다.
118372 | 873211 |
풀이방법
* 주어진 매개변수가 long 타입인 것을 잘 확인해야합니다
1. 길이를 구하기 위해 "" + n 을 사용해서 n을 String n 으로 만들어줍니다.
2. split 함수를 이용해서 arr 배열에 담아줍니다.
3. Arrays.sort 와 Collections.reverseOrder() 를 사용해서 오름차순으로 정렬 후 내림차순으로 다시 바꾸어줍니다.
4. 결과값을 넣어줄 String result 를 선언합니다.
5. arr 길이만큼 for문을 돌면서 result 에 arr 의 0번째 값부터 담아줍니다.
6. return 값으로 String 값을 long 타입으로 바꾸어 주어야 합니다.
=> Integer.parseInt 를 이용해서 int 값으로 바꾸어 주는것처럼 Long.parseLong을 사용해서 Long 타입으로 바꾸어줍니다.
import java.util.*;
class Solution {
public long solution(long n) {
long answer = 0;
String s = ""+n;
String [] arr = s.split("");
Arrays.sort(arr, Collections.reverseOrder());
String result = "";
for(int i =0; i<arr.length; i++){
result += arr[i];
}
return Long.parseLong(result);
}
}
728x90
'Algorithm & SQL > programmers' 카테고리의 다른 글
프로그래머스 JAVA <문자열을 정수로 바꾸기> (0) | 2022.06.19 |
---|---|
프로그래머스 JAVA <문자열 내 p와 y의 개수> (0) | 2022.06.19 |
프로그래머스 JAVA <정수 제곱근 판별> (0) | 2022.06.18 |
프로그래머스 JAVA <콜라츠 추측> (0) | 2022.06.17 |
프로그래머스 JAVA <자연수 뒤집어 배열로 만들기> (0) | 2022.06.17 |
댓글