
주어지는 n에 나누어 떨어지는 배수값을 int 배열로 반환하는 크게 어렵지않은 문제입니다.
stream을 사용해 코드를 단순화하여 작성하는 방법과 배열을 직접 반복해 stream의 오버헤드 없이 연산하는 방법을 통해 풀어보았습니다.
import java.util.Arrays;
class Solution {
public int[] solution(int n, int[] numlist) {
// 배열값 중 0으로 나누어 떨어지는 값을 반환
return Arrays.stream(numlist).filter(i -> i % n == 0).toArray();
}
}
import java.util.Arrays;
class Solution {
public int[] solution(int n, int[] numlist) {
// 결과 배열의 크기 계산
int count = 0;
for (int num : numlist) {
if (num % n == 0) {
count++;
}
}
// 결과 배열 생성 및 값 채워 넣기
int[] answer = new int[count];
int index = 0;
for (int num : numlist) {
if (num % n == 0) {
answer[index++] = num;
}
}
return answer;
}
}
Arrays 클래스의 stream()에 대해 다음 포스팅에서 알아보겠습니다.