레벨: 2
언어: Java
해당문제가 숫자 한자리수로 하는거면 간단하게 숫자로 만들고 sorting하면되겟지만, 2자리수 이상 나올수있으면 그에따라 숫자가 문자열 형태로 붙는문제라서..
문자열로 변경후 sorting하고 String join 메서드 이용해서 배열합치는거로 마무리 지었습니다.
특별한 알고리즘이 필요없는 문제입니다..
import java.util.*;
class Solution {
public String solution(int[] numbers) {
String[] strings = new String[numbers.length];
for (int i = 0; i < numbers.length; i++) {
strings[i] = String.valueOf(numbers[i]);
}
Arrays.sort(strings, (o1, o2) -> (o2+o1).compareTo(o1+o2));
return strings[0].equals("0") ? "0" : String.join("", strings);
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
class Solution {
public String solution(int[] numbers) {
String answer = "";
List<Integer> list = new ArrayList<>();
for(int i = 0; i < numbers.length; i++) {
list.add(numbers[i]);
}
Collections.sort(list, (a, b) -> {
String as = String.valueOf(a), bs = String.valueOf(b);
return -Integer.compare(Integer.parseInt(as + bs), Integer.parseInt(bs + as));
});
StringBuilder sb = new StringBuilder();
for(Integer i : list) {
sb.append(i);
}
answer = sb.toString();
if(answer.charAt(0) == '0') {
return "0";
}else {
return answer;
}
}
}