
뭐가 잘못된거지..? 케이스 넣고 돌려보면 잘 나오는데 실패 케이스는 왜 그런지 모르겠다ㅜㅜ
    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);