
내가 작성한 코드
import java.util.*;
class Solution {
public String[] solution(String[] strings, int n) {
String[] answer = new String[strings.length];
List<String> list = new ArrayList<>(Arrays.asList(strings)); // 정렬할 리스트
Collections.sort(list, new Comparator<String>() {
// Comparator를 사용하여 정렬 기준을 정의
@Override
public int compare(String o1, String o2) {
// n번째 문자가 같으면 사전순으로 정렬
// n번째 문자가 다르면 n번째 문자로 정렬
if (o1.charAt(n) == o2.charAt(n)) {
return o1.compareTo(o2);
} else {
return Character.compare(o1.charAt(n), o2.charAt(n));
}
}
});
// 정렬된 리스트를 배열로 변환
for (int i = 0; i < strings.length; i++) {
answer[i] = list.get(i);
}
return answer;
}
}
다른 사람의 코드
import java.util.*;
class Solution {
public String[] solution(String[] strings, int n) {
String[] answer = {};
ArrayList<String> arr = new ArrayList<>();
// n번째문자 + 원래문자열 리스트에 저장
for (int i = 0; i < strings.length; i++) {
arr.add("" + strings[i].charAt(n) + strings[i]);
}
Collections.sort(arr); // 정렬
answer = new String[arr.size()];
// 첫번째 글자 제거
for (int i = 0; i < arr.size(); i++) {
answer[i] = arr.get(i).substring(1, arr.get(i).length());
}
return answer;
}
}
Share article