class Solution {
public String[] solution(String[] strings, int n) {
String[] answer = {};
return answer;
}
}
import java.util.*;
class Solution {
public String[] solution(String[] strings, int n) {
for (int i = 0; i < strings.length; i++) {
strings[i] = strings[i].substring(n, n+1) + strings[i]; // n인덱스에 있는 문자 잘라서 담기 + 원래 문자열을 뒤에 붙여주기
}
Arrays.sort(strings);
for (int i = 0; i < strings.length; i++) {
strings[i] = strings[i].substring(1); // 1번째 인덱스 ~ 끝까지 문자열 자르기 (= 원래 문자열)
}
return strings;
}
}
주의!
처음에 생성하도록 제시되었던 String[] answer = {} 를 사용해서 answer[i] 배열에 담게 되면
answer 배열에는 아무런 값이 없는 상태에서 잘린 문자들이 추가되는 것이다.
이 경우, strings[i].substring(1) 에 의해 1번째 인덱스부터 잘려서 나오게된다. ("car"가 아닌 "ar"로)
따라서, String[i]를 새로운 문자로 덮어씌우는 방식으로 진행해야 한다.
// 잘못된 방식
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++) {
answer[i] = strings[i].substring(n, n+1) + strings[i]; // n인덱스에 있는 문자 잘라서 담기 + 원래 문자열을 뒤에 붙여주기
}
Arrays.sort(answer);
for (int i = 0; i < strings.length; i++) {
answer[i] = strings[i].substring(1); // 1번째 인덱스 ~ 끝까지 문자열 자르기 (= 원래 문자열)
}
return answer;
}
}