1. Arrays.sort()와 Collections.sort()를 사용할 줄 알아야 함.
2. Comparable과 Comparator의 차이 알기
Comparable : 객체 간의 일반적인 정렬이 필요할 때, Comparable 인터페이스를 확장해서 정렬의 기준을 정의하는 compareTo() 메서드를 구현한다.
Comparator : 객체 간의 특정한 정렬이 필요할 때, Comparator 인터페이스를 확장해서 특정 기준을 정의하는 compare() 메서드를 구현한다.
package OneDayOneCodingChallenge;
import static org.junit.Assert.assertArrayEquals;
import java.util.Arrays;
import java.util.Comparator;
import org.junit.Test;
/**
* @author seoyeon on 2020/09/11
* @project AlgorithmTest
*/
public class Day8 {
public String[] solution(String[] strings, int n) {
Arrays.sort(strings, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
char c1 = s1.charAt(n);
char c2 = s2.charAt(n);
// n번째 문자가 같을 경우에 원본 스트링을 사전순으로
if (c1 == c2) {
return s1.compareTo(s2); // 오름차순
} else {
return c1 - c2; // 오름차순
}
}
});
return strings;
}
@Test
public void 정답() {
assertArrayEquals(new String[]{"abcd", "abce", "cdx"},
solution(new String[]{"abce", "abcd", "cdx"}, 2));
}
}
'Algorithm' 카테고리의 다른 글
[프로그래머스]타켓 넘버 (0) | 2020.09.15 |
---|---|
[프로그래머스]위장 (0) | 2020.09.14 |
[프로그래머스]다리 위를 지나는 트럭 (0) | 2020.09.10 |
[프로그래머스]기능개발 (0) | 2020.09.08 |
[프로그래머스]라면공장 문제풀이(우선순위큐) (0) | 2020.09.07 |