https://school.programmers.co.kr/learn/courses/30/lessons/12915

정답률 70%

📝 풀이 2 : (a.charAt(n) + a).compareTo()

a.charAt(n) + ab.charAt(n) + b를 비교한다.

문자열 앞에 n번째 글자를 더해줌으로써, n번째 글자를 기준으로 먼저 정렬하게 한다.⭐

import java.util.Arrays;
class Solution {
// strings를 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬
public String[] solution(String[] strings, int n) {
Arrays.sort(strings, (a, b) -> (a.charAt(n) + a).compareTo(b.charAt(n) + b));
return strings;
}
}

📝 풀이 1 : Character.compare() + a.compareTo()

Character.compare()를 통해 n번째 글자를 먼저 비교하고, 같다면 전체 문자열을 비교하도록 한다.

import java.util.Arrays;
class Solution {
// strings를 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬
public String[] solution(String[] strings, int n) {
Arrays.sort(strings, (a, b) -> {
// n번째 글자를 기준으로 정렬
int cmp = Character.compare(a.charAt(n), b.charAt(n));
if (cmp != 0) return cmp;
// n번째 글자가 같다면 전체 문자열을 기준으로 정렬
return a.compareTo(b);
});
return strings;
}
}
 
yewon31