https://programmers.co.kr/learn/courses/30/lessons/12933?language=java
코딩테스트 연습 - 정수 내림차순으로 배치하기
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이
programmers.co.kr
풀이
처음엔 toCharArray로 char 배열로 만들었는데, sort에 Comparator T에 기본자료형이 들어가지 못한다고한다.
그래서 .split("")으로 String 타입으로 배열을 선언했다.
- Long->String : String.valueof(n)
- 내림차순 정렬 : Arrays.sort()-> StringBuilder을 reverse()
import java.util.*;
class Solution {
public long solution(long n) {
String[] list = String.valueOf(n).split(""); // String으로 변환후 잘라서 배열에 넣음
Arrays.sort(list);
StringBuilder sb = new StringBuilder();
for (String s : list) sb.append(s);
return Long.parseLong(sb.reverse().toString());
}
}
+
다른사람풀이
- Long->String : Long.toString(n)
- 내림차순 정렬 : Arrays.sort(배열, Collections.reverseOrder())
import java.util.*;
class Solution {
public long solution(long n) {
String[] arrStr = Long.toString(n).split(""); // Long->String->String[]
Arrays.sort(arrStr, Collections.reverseOrder()); // 내림차순 정렬
return Long.parseLong(String.join("", arrStr)); // String[]->String->Long
}
}
'Algorithm & Data Structure > 프로그래머스' 카테고리의 다른 글
[Java] 프로그래머스 : 로또의 최고 순위와 최저 순위 (0) | 2022.02.21 |
---|---|
[Java] 프로그래머스 : 실패율 (0) | 2022.02.20 |
[Java] 프로그래머스 : 신고 결과 받기 (0) | 2022.02.18 |
[Java] 프로그래머스 : 다트 게임 (0) | 2022.02.14 |
[Java] 프로그래머스 : 비밀지도 (0) | 2022.02.14 |