개발자/프로그래머스
자바_프로그래머스_정수 내림차순으로 배치하기
푸루닉
2022. 11. 23. 17:12
https://github.com/pulunick/programmers-and-baekjun/blob/main/Quiz12933.java
GitHub - pulunick/programmers-and-baekjun
Contribute to pulunick/programmers-and-baekjun development by creating an account on GitHub.
github.com
1. 코드
// 접근 방법 : 내림차순 정렬은 String형으로 쉽게 가능하다.
static class Solution4 {
public long solution4(long n) {
// String 형으로 변환 후 String 배열에 split을 이용해 집어넣는다.
// String s = String.valueOf(n);
// String[] ss = s.toString().split("");
// 위 코드를 한줄로 표현 가능하다.
String[] ss = String.valueOf(n).split("");
// Collections.reversOrder()를 이용해 내림차순 정렬
// int형의 경우 Arrays.stream(arr).boxed().toArray(Integer[]::new);을 통해 Integer타입
// 배열로 변경해 줘야 한다.
Arrays.sort(ss, Collections.reverseOrder());
// StringBuilder의 append를 활용
StringBuilder sb = new StringBuilder();
for(String name : ss) {
sb.append(name);
}
// String str = sb.toString();
// long형으로 형변환 + toString을 통해 메소드를 재정의
long answer = Long.parseLong(sb.toString());
return answer;
}
}
2. 미흡한 점
- 한줄로 줄일 수 있던 코드를 더 줄이지 않았다.
- 처음 접근 방식을 long형이기에 int[]로 잡았는데 String[]으로 잡는 것이 훨씬 편했다
- String은 자바에서 가장 유연하기 때문.
- StringBuilder에 대한 공부가 더 필요하다.