
public int solution(int[] num_list) {
int result = 1;
int sum = Arrays.stream(num_list).sum();
for (int num : num_list) {
result *= num;
}
return result > (sum * sum) ? 0 : 1;
}
public int solution(int[] num_list) {
int multiply = 1;
int sum = 0;
for (int num : num_list) {
multiply *= num;
sum += num;
}
return multiply > (sum * sum) ? 0 : 1;
}
import java.util.Arrays;
public int solution(int[] num_list) {
int multiply = Arrays.stream(num_list).reduce(1, (a, b) -> a * b);
int sum = Arrays.stream(num_list).sum();
return multiply > (sum * sum) ? 0 : 1;
}
Arrays.stream(num_list)
num_list(정수 배열)를 스트림(Stream) 으로 변환.num_list 배열의 각 요소를 순차적으로 처리할 수 있는 스트림을 생성..reduce(1, (a, b) -> a * b)
reduce(초기값, 누적 연산) 형태로 배열의 모든 요소를 하나의 값으로 축약(누적 계산) 하는 함수.1 → 초기값 (곱셈에서는 1을 사용해야 함, 만약 0을 사용하면 무조건 0이 한다.)(a, b) -> a * b → 누적 연산 (현재 값 a와 다음 값 b를 곱함)int[] 배열을 IntStream으로 변환하지만, 배열 전체를 처리할 수도 있다.import java.util.Arrays;
import java.util.stream.IntStream;
public static int solution(int[] num_list) {
int multiply = IntStream.of(num_list).reduce(1, (a, b) -> a * b );
int sum = Arrays.stream(num_list).sum();
return multiply > (sum * sum) ? 0 : 1;
}
IntStream.of(numbers) → 배열을 직접 IntStream으로 변환.reduce(1, (a, b) -> a * b) → 모든 요소를 곱함.IntStream.of(numbers)는 내부적으로 Arrays.stream(numbers)와 유사하게 동작하지만,IntStream을 생성한다.IntStream을 직접 생성하므로 더 직관적이고, 성능적으로 약간 유리하다.Arrays.stream(numbers)가 가끔 Stream<int[]>로 변환될 수 있는 경우를 방지할 수 있다.