문제
내가 작성한 정답
import java.util.*;
class Solution {
public String[] solution(String[] todo_list, boolean[] finished) {
List<Integer> index = new ArrayList<>();
for(int i=0;i<finished.length;i++){
if(!finished[i]) index.add(i);
}
String[] answer = new String[index.size()];
for(int i=0; i < index.size(); i++){
answer[i] = todo_list[index.get(i)];
}
return answer;
}
}
다른 사람들의 정답
class Solution {
public String[] solution(String[] todo_list, boolean[] finished) {
String str = "";
for(int i=0; i<finished.length; i++){
// i가 false라면 String str에 글자와 ,를 추가하여 리턴 시 , 로 쪼갠 배열을 리턴한다.
str = finished[i]==false ? str+todo_list[i]+"," : str;
}
return str.split(",");
}
}
import java.util.stream.IntStream;
class Solution {
public String[] solution(String[] todo_list, boolean[] finished) {
// 0부터 finished.length - 1까지의 정수 스트림을 생성
return IntStream.range(0, finished.length)
// finished 배열에서 false인 인덱스만 필터링
.filter(i -> !finished[i])
// 필터링된 인덱스를 사용하여 todo_list에서 해당 요소를 가져옴
.mapToObj(i -> todo_list[i])
// 최종적으로 String 배열로 변환하여 반환
.toArray(String[]::new);
}
}
Share article