
내가 작성한 코드
class Solution {
public String[] solution(String[] todo_list, boolean[] finished) {
// 정답 배열 길이 설정
int length = 0;
for(int i = 0; i < finished.length; i++) {
if(finished[i] == false) {
length++;
}
}
String[] answer = new String[length];
int index = 0;
// finished 배열을 순회하면서 false인 경우에만 정답 배열에 추가
for(int i = 0; i < finished.length; i++) {
if(!finished[i]) {
answer[index++] = todo_list[i];
}
}
return answer;
}
}
다른 사람의 코드
import java.util.stream.IntStream;
class Solution {
public String[] solution(String[] todo_list, boolean[] finished) {
return IntStream.range(0, finished.length)
.filter(i -> !finished[i]) // finished의 값이 false인 인덱스만 필터링
.mapToObj(i -> todo_list[i]) // todo_list의 해당 인덱스 값 반환
.toArray(String[]::new); // 결과를 String 배열로 변환
}
}
Share article