반응형
- 첫 풀이 및 정답풀이
이 문제는 정렬을 위한 특정 기준을 통해 배열을 정렬하는 것이 핵심인 문제라고 생각한다. 필자는 이전부터 이러한 유형의 문제는Arrays.sort() 메서드의 인자로 Comparator인터페이스의 compare() 메서드를 재정의하는 방식을 이용하는 방법을 연습했기 때문에 쉽게 풀 수 있었다.
import java.util.Arrays;
import java.util.Comparator;
class Solution {
public String[] solution(String[] strings, int n) {
// 1. Arrays.sort() 메소드의 인자로 Comparator인터페이스 재정의
Arrays.sort(strings, new Comparator<>() {
// 2. compare() 메소드 구현
@Override
public int compare(String o1, String o2) {
// 2-1. 인덱스 n의 문자가 같은 문자열인 경우는 사전순 정렬.
if(o1.charAt(n) == o2.charAt(n)) return o1.compareTo(o2);
// 2-2. 그 외의 경우는 인덱스 n을 기준으로 정렬.
else return o1.charAt(n) - o2.charAt(n);
}
});
return strings;
}
}
반응형