
내가 작성한 코드 1 (반복문 사용)
class Solution {
public String[] solution(String[] names) {
// 정답 배열 길이 계산
String[] answer = new String [names.length % 5 == 0 ? names.length / 5 : names.length / 5 + 1];
int index = 0; // 정답 배열 인덱스
// 5개씩 건너뛰면서 정답 배열에 저장
for(int i = 0; i < names.length; i += 5) {
answer[index++] = names[i];
}
return answer;
}
}
내가 작성한 코드 2 (스트림 사용)
import java.util.stream.IntStream;
class Solution {
public String[] solution(String[] names) {
// Stream을 사용하여 5개씩 건너뛰며 정답 배열 생성
String[] answer = IntStream.range(0, names.length) // 0부터 names.length - 1까지의 인덱스 생성
.filter(i -> i % 5 == 0) // 5개씩 건너뛰는 인덱스 필터링
.mapToObj(i -> names[i]) // 해당 인덱스의 값을 가져옴
.toArray(String[]::new); // 결과를 String 배열로 변환
return answer;
}
}
IntStream
은 배열의 인덱스를 기반으로 작업을 수행함
Share article