문제
내가 작성한 정답
for
import java.util.*;
class Solution {
public String[] solution(String my_string) {
int len = my_string.length();
String[] answer = new String[len];
for(int i =0; i<len; i++){
answer[i] = my_string.substring(i, len);
}
Arrays.sort(answer);
return answer;
}
}
StreamAPI
import java.util.stream.IntStream;
class Solution {
public String[] solution(String my_string) {
return IntStream.range(0,my_string.length())
.mapToObj(i->my_string.substring(i,my_string.length()))
.sorted().toArray(String[]::new);
}
}
다른 사람들의 정답
StreamAPI
import java.util.*;
import java.util.stream.IntStream;
class Solution {
public String[] solution(String myString) {
return IntStream.range(0, myString.length()).mapToObj(myString::substring).sorted().toArray(String[]::new);
}
}
.mapToObj(myString::substring): 각 인덱스 i에 대해 myString.substring(i)을 호출하여 myString의 접미사를 생성한다. myString::substring은 메서드 참조로, myString.substring(i)와 동일한 역할을 한다.
CharAt
import java.util.Arrays;
class Solution {
public String[] solution(String my_string) {
String[] answer = new String[my_string.length()];
String str = "";
for (int i = my_string.length() - 1; i >= 0; i--) {
// 현재 인덱스의 문자를 str의 앞에 추가하여 역순으로 문자열을 만든다.
str = my_string.charAt(i) + str;
answer[i] = str;
}
Arrays.sort(answer);
return answer;
}
}
charAt(i) :문자열(String)의 특정 위치에 있는 문자를 반환
Share article