반응형
import java.util.*;
class Solution {
public String solution(int[] numbers) {
String answer = "";
String[] arr = new String[numbers.length];
for (int i = 0; i < numbers.length; i++) {
arr[i] = String.valueOf(numbers[i]);
}
Arrays.sort(arr, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return (o2 + o1).compareTo(o1 + o2);
}
});
if (arr[0].equals("0"))
return "0";
else {
for (int i = 0; i < arr.length; i++) {
answer += arr[i];
}
}
return answer;
}
}
입력받은 int형 배열을 정렬이 용이한 String형태로 변환한뒤 Arrays.sort를 활용하여 정렬한다.
Comparator를 활용하여 두 String을 합하여 더 큰 쪽이 우선순위가 있도록 규칙을 만들어 준다.
정렬을 하고난뒤 가장 앞자리가 큰 숫자가 arr[0]에 담기게 되는데 해당 값이 0이라는 것의 의미는 숫자가 0000 처럼 0으로만 구성되었다는 의미이므로 0을 return 한다
이외의 경우에는 순차적으로 저장하여 return 해준다.
문제 출처 : www.progprogrammers.co.kr
반응형
'Algorithm' 카테고리의 다른 글
문자열 내 p와 y의 개수 (0) | 2020.12.04 |
---|---|
두 개 뽑아서 더하기 (0) | 2020.12.04 |
Time Conversion (0) | 2020.10.10 |
Birthday Cake Candles (0) | 2020.10.10 |
Mini-Max Sum (0) | 2020.10.10 |