정렬
1. numbers의 원소를 int에서 string 형태로 변환한다.
2. 문제의 조건에 맞게 comparator를 활용하여 변경한다.
3. 모든 원소가 0인 경우를 고려하여 answer="0000" 와 같은 경우를 "0"으로 변경한다.
+) zeroCount라는 변수를 통해 문자열의 길이와 0의 개수를 비교하여 모든 원소가 0인 경우를 찾도록 구현하였다. 하지만, 다른 사람 풀이의 경우 문제 조건에 따라 첫 문자가 "0"인 경우는 모든 원소임을 활용해 해당 부분을 해결하였다.
import java.util.*;
class Solution {
public String solution(int[] numbers) {
String answer = "";
String[] numbersStr = new String[numbers.length];
for (int i = 0; i < numbers.length; i++) {
numbersStr[i] = String.valueOf(numbers[i]);
}
Arrays.sort(numbersStr, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return (o2 + o1).compareTo(o1 + o2);
}
});
int zeroCount = 0;
for (int i = 0; i < numbers.length; i++) {
answer += numbersStr[i];
zeroCount += numbersStr[i].equals("0") ? 1 : 0;
}
if (zeroCount == numbers.length) {
answer = "0";
}
return answer;
}
}