뭐가 잘못된거지..? 케이스 넣고 돌려보면 잘 나오는데 실패 케이스는 왜 그런지 모르겠다ㅜㅜ
public String[] solution(String[] strings, int n) {
String[] answer = {};
Arrays.sort(strings);
for (int i = 0; i < strings.length; i++) {
for (int j = i + 1; j < strings.length; j++) {
if(strings[i].charAt(n)>strings[j].charAt(n)) {
String tmp = strings[j];
strings[j] = strings[i];
strings[i] = tmp;
}
}
}
answer = strings;
return answer;
}
다른 사람들은 n번째 문자를 앞으로 붙여넣은다음 sorting하고 substring으로 붙여넣은걸 제거하는 방식을 썼다.
그리고 GPT는 나에게 아래와 같은 코드를 줬다.
import java.util.Arrays;
class Solution {
public String[] solution(String[] strings, int n) {
Arrays.sort(strings, (a, b) -> {
if (a.charAt(n) == b.charAt(n)) {
return a.compareTo(b);
} else {
return Character.compare(a.charAt(n), b.charAt(n));
}
});
return strings;
}
}
Comparetor는 Java에서 두 객체를 비교하는 데 사용되는 인터페이스입니다. 이 인터페이스는 두 객체를 비교하여 정렬 순서를 결정하는 메서드 compare를 정의합니다. Comparator는 일반적으로 정렬 알고리즘, 검색 알고리즘 등에서 사용됩니다.
Comparator<String> stringComparator = (s1, s2) -> s1.compareTo(s2);
// 또는
Comparator<String> stringComparator = Comparator.naturalOrder();
Comparator<Integer> intComparator = (i1, i2) -> Integer.compare(i1, i2);