문제
내가 작성한 정답
ArrayList
import java.util.ArrayList;
class Solution {
public String[] solution(String[] str_list) {
ArrayList<String> answer = new ArrayList<>();
for(int i=0; i<str_list.length; i++){
if(str_list[i].equals("l")) {
for(int j=0; j<i; j++){
answer.add(str_list[j]);
}
break;
} else if (str_list[i].equals("r")) {
for(int j=i+1; j<str_list.length; j++){
answer.add(str_list[j]);
}
break;
}
}
return answer.toArray(String[]::new);
}
}
Arrays.copyOfRange
import java.util.Arrays;
class Solution {
public String[] solution(String[] str_list) {
String[] answer = new String[0];
for(int i=0; i<str_list.length; i++){
if(str_list[i].equals("l")){
answer = Arrays.copyOfRange(str_list,0,i);
break;
} else if (str_list[i].equals("r")) {
answer = Arrays.copyOfRange(str_list,i+1,str_list.length);
break;
}
}
return answer;
}
다른 사람들의 정답
Arrays.copyOfRange
import java.util.Arrays;
class Solution {
public String[] solution(String[] str_list) {
for (int i = 0; i < str_list.length; i++) {
if ("l".equals(str_list[i])) {
return Arrays.copyOfRange(str_list, 0, i);
} else if ("r".equals(str_list[i])) {
return Arrays.copyOfRange(str_list, i + 1, str_list.length);
}
}
return new String[0];
}
stream
import java.util.Arrays;
import java.util.stream.IntStream;
class Solution {
public String[] solution(String[] str_list) {
return IntStream.range(0, str_list.length)
.boxed()
.filter(i -> str_list[i].equals("l") || str_list[i].equals("r"))
.findFirst()
.map(i -> {
if (str_list[i].equals("l")) {
return Arrays.copyOfRange(str_list, 0, i);
}
return Arrays.copyOfRange(str_list, i + 1, str_list.length);
})
.orElseGet(() -> new String[]{});
}
}
Share article