반응형
딱 봤을때 String 으로 만들어서 뒤집어야겠다는 생각을 했다.
import java.util.*;
class Solution {
public long solution(long n) {
//String 배열로 만듦
String[] arr = String.valueOf(n).split("");
//순서 뒤집음
Arrays.sort(arr, Comparator.reverseOrder());
//하나의 String으로 변환
String str = "";
for (String s : arr) {
str += String.valueOf(s);
}
//long 변환
long answer = Long.parseLong(str);
return answer;
}
}
그런데 String 으로 변환하는 부분이 마음에 들지않는다.
좀더 간단한 방법이 있을것같고, 내림차순으로 하기위해서 Coparator.reverseOrder() 라는 함수가 있다는것을 외워야한다.
다른 사람의 풀이를 살펴보았다.
import java.util.*;
class Solution {
public long solution(long n) {
//String 배열로 만듦
String[] arr = String.valueOf(n).split("");
//순서 뒤집음
Arrays.sort(arr);
//하나의 String으로 변환
StringBuilder sb = new StringBuilder();
for (String s : arr) sb.append(s);
//long 변환
long answer = Long.parseLong(sb.reverse().toString());
return answer;
}
}
StringBuilder 를 사용하면 Comparator.reverseOrder() 이라는 다소 긴 메소드를 기억할 필요없이
new StringBuilder 선언하고 append 로 담은다음에 sb.reverse() 만 해주면 된다.
728x90
'BackEnd > 알고리즘' 카테고리의 다른 글
leetcode 20. Valid Parentheses (0) | 2024.08.04 |
---|---|
Programmers - 자릿수 더하기 (0) | 2024.08.04 |
Programers - x만큼 간격이 있는 n개의 숫자 (0) | 2024.08.04 |
leetcode 92. Reverse Linked List II (0) | 2024.08.03 |
leetcode 328. Odd Even Linked List (0) | 2024.08.03 |