
문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
문자열로 된 수의 배열이 주어지는데, 각 문자열은 1에서 10^6 자리까지의 양의 정수이다. 배열의 요소를 오름차순으로 정렬하고 정렬된 배열을 반환해라.
unsorted = ['1', '200', '150', '3']
배열 ['1', '3', '150', '200']이 반환한다.
bigSorting 함수를 완성해라.
bigSorting 함수는 아래와 같은 매개변수를 가지고 있다.
String 배열을 정렬하는 것이라서 Comparator을 오버라이드했다. 아마 단순히 문자열 배열을 정렬해 본 사람들이라면 문자열을 그냥 정렬하면 문자의 자리수와 상관없이 오름차순으로 정렬된다는 것을 알고 있다.
Comparator을 생성한다. 그리고 compare를 재정의 할 것인데 조건문을 통해 문자열의 길이에 따라 정렬한다.
Comparator<String> comp = new Comparator<String>(){
@Override
public int compare(String o1, String o2) {
if(o1.length() > o2.length()){
return 1;
}
if(o1.length() < o2.length()){
return -1;
}
return o1.compareTo(o2);
}
};
새롭게 정의한 Comparator로 unsorted를 정렬하고 반환한다.
unsorted.sort(comp);
return unsorted;
public static List<String> bigSorting(List<String> unsorted) {
Comparator<String> comp = new Comparator<String>(){
@Override
public int compare(String o1, String o2) {
if(o1.length() > o2.length()){
return 1;
}
if(o1.length() < o2.length()){
return -1;
}
return o1.compareTo(o2);
}
};
unsorted.sort(comp);
return unsorted;
}