Coding Test/프로그래머스
[200508] 문자열 내 마음대로 정렬하기 - 연습문제(level1)
csmoon1010
2020. 5. 9. 10:31
1. 문제이해
- 문자열의 n번째 글자를 기준으로 오름차순 정렬
- 단, 같은 n번째 글자라면 사전순 정렬
2. 전략
- Comparator을 이용한 Arrays.sort
- n번째 글자 : a.substring(n, n+1)
- 글자가 같다면 a와 b를 비교한 결과를, 아니라면 글자를 비교한 결과를 return
3. 참고사항
- String 클래스의 compareTo : 스트링을 비교한 결과로 같으면 0, 앞이 더 먼저오면 음수, 뒤에 오면 양수를 출력
- Comparator : public int compare(String a, String b)안에 먼저 오면 -1, 뒤에 오면 +1 return하도록 구현하면 됨!!(오름차순)
- 다른 방식 : n번째 char와 나머지 string을 뒤에 붙인 문자로 재구성 후 Collections.sort
4. 코드
import java.util.*;
class Solution {
public String[] solution(String[] strings, int n) {
String[] answer = {};
Arrays.sort(strings, new Comparator<String>(){
public int compare(String a, String b){
if(a.substring(n, n+1).compareTo(b.substring(n, n+1)) == 0){
return a.compareTo(b);
}
else return a.substring(n, n+1).compareTo(b.substring(n, n+1));
}
});
answer = strings;
return answer;
}
}