정수 배열 arr이 주어질 때, 배열의 평균값을 반환하는 문제이다.
arr = [1, 2, 3, 4] → 2.5
arr = [5, 5] → 5.0
풀이 1 - 직접 합산 후 나누기
배열을 순회하면서 모든 원소를 더한 뒤 배열 길이로 나눈다.
double sum = 0;
for (int num : arr) {
sum += num;
}
return sum / arr.length;
나눗셈 결과가 소수점이 나올 수 있기 때문에 sum을 double로 선언했다.
int로 선언하면 소수점이 버려짐.
풀이 2 - 스트림 활용
Arrays.stream()으로 배열을 스트림으로 변환하고, average()로 평균을 바로 구하는 방식이다.
return Arrays.stream(arr).average().orElse(0.0);
average()는 OptionalDouble을 반환한다.
풀이 1
class Solution {
public double solution(int[] arr) {
double sum = 0;
for (int num : arr) {
sum += num;
}
return sum / arr.length;
}
}
풀이 2
import java.util.Arrays;
class Solution {
public double solution(int[] arr) {
return Arrays.stream(arr).average().orElse(0.0);
}
}
