👀 문제
https://programmers.co.kr/learn/courses/30/lessons/12915
👊 도전
1. 설계
- Arrays.sort로 일단 오름차순 정렬한다.
- n번째 인덱스 값에 따른 정렬을 Comparator로 이용해 구현한다.
2. 구현 (성공 코드)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.*;
/**
*
* @author HEESOO
*
*/
class Solution {
public String[] solution(String[] strings, int n) {
String[] answer = {};
Arrays.sort(strings);
Arrays.sort(strings, new Comparator<String>(){
@Override
public int compare(String s1, String s2){
return s1.charAt(n)-s2.charAt(n);
}
});
System.out.println(Arrays.toString(strings));
return strings;
}
}
3. 결과
🤟 성공 🤟
4. 설명
- 처음 오름차순 정렬을 한다.
- 입출력 예2에서 2번째 인덱스 값으로 정렬한다고 했을 때, abce와 abcd의 두번째 인덱스는 c로 같으므로, 이 경우 사전순으로 정렬해야한다. 따라서 이 경우를 대비해 n번째 인덱스에 따른 정렬을 하기 전 오름차순으로 정렬해둔다.
- Comparator을 이용해 인덱스 값에 따른 정렬을 구현한다.
- s1과 s2의 n번째 인덱스를 charAt으로 추출한 후, 오름차순 정렬이므로 s1-s2이다.
👏 해결 완료!
어유 코테가 이런식의 난이도라면 얼마나 좋아