문제 링크 - https://programmers.co.kr/learn/courses/30/lessons/12915
- 문제 해결
- 문자열을 정렬하되, 주어진 n번째를 기준으로 정렬하고, n번째 문자열이
같다면 사전순으로 정렬!
우리가 보통 Collections.sort()나 Arrays.sort()를 문자열에서
사용하면 사전 순으로 정렬된다.
여기서, 두 방법 모두 첫 번째 숫자부터 차례로 비교해 나가며 정렬해 나가기
때문에, 이 문제와 다른 점은 단지 주어진 문자가 먼저 정렬 기준이 되고
이후로는 첫 번째 문자를 기준으로 정렬된다는 것이다.
그렇다면 Collections.sort()나 Arrays.sort()를 사용할 수 있지
않을까?? -> sort()를 이용하려면 첫 번째 글자에 n번째 글자가 와야한다!
--> n번째 글자를 첫 번째 글자로 만들어 정렬하자!
import java.util.*;
class Solution {
public String[] solution(String[] strings, int n) {
for(int i=0;i<strings.length;i++){//맨 앞으로
strings[i] = String.valueOf(strings[i].charAt(n)) + strings[i];
}
Arrays.sort(strings);
String [] result = new String [strings.length];
for(int i=0;i<strings.length;i++){
result[i] = strings[i].substring(1); //정렬 후 첫 번째 글자를 제거
}
return result;
}
}