[프로그래머스] 문자열 내 마음대로 정렬하기
2020. 6. 21. 18:49ㆍ프로그래머스/LEVEL 1
import java.util.*;
class Solution {
public String[] solution(String[] strings, int n) {
String[] answer = new String[strings.length];
for(int i=0; i<strings.length; i++){
strings[i] = Character.toString(strings[i].charAt(n))+strings[i];
}
Arrays.sort(strings);
for (int i=0; i<answer.length; i++){
answer[i] = strings[i].substring(1);
}
return answer;
}
}
1. n번째 인덱스를 기준으로 오름차순 정렬할 것이기 때문에, 해당 문자를 기존의 문자열 맨 앞에 붙이고 정렬하면 된다.
2. 이후 맨 앞글자를 제외한 나머지를 answer로 옮기면 된다.
Comparator 재정의 풀이
import java.util.*;
class Solution {
public String[] solution(String[] strings, int n) {
String[] answer = new String[strings.length];
Arrays.sort(strings, new Comparator<String>(){
public int compare(String s1, String s2){
if(s1.charAt(n)==s2.charAt(n)){
return s1.compareTo(s2);
}else{
return s1.charAt(n)-s2.charAt(n);
}
}
});
for(int i=0; i<answer.length; i++){
answer[i] = strings[i];
}
return answer;
}
}
1. 정렬 기준을 두번째 인덱스의 대소관계를 통해 하도록 Comparator를 재정의 하여 정렬할 수 있다.
'프로그래머스 > LEVEL 1' 카테고리의 다른 글
[프로그래머스] 자연수 뒤집어 배열로 만들기 (0) | 2020.06.21 |
---|---|
[프로그래머스] 이상한 문자 만들기 (0) | 2020.06.21 |
[프로그래머스] 두 정수 사이의 합 (0) | 2020.06.21 |
[프로그래머스] 나누어 떨어지는 숫자 배열 (0) | 2020.06.21 |
[프로그래머스] 체육복 (0) | 2020.06.21 |