문제 설명
정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
제한사항
- arr은 길이 1 이상, 100 이하인 배열입니다.
- arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.
입출력 예
arr | return |
---|---|
[1,2,3,4] | 2.5 |
[5,5] | 5 |
자바 코드
import java.util.*;
class Solution {
public double solution(int[] arr) {
double answer = 0;
int sum = Arrays.stream(arr).reduce(0,(s1,s2)-> s1+s2);
return (double)sum/arr.length;
}
}
- 배열 평균구하기와 비슷하다. 똑같이
int[] arr
이 기본 배열이기 때문에stream
사용 시Arrays.strea(arr)
로 변환해주어야 한다. - 누적합을 구하기 위해서
reduce
를 사용했다. - 초기값은 0 이고,
s1+s2
이런식의 연산을 진행할 것이다. 이해하기 어렵다면 아래식을 보면 어느정도 이해가 갈것이다.
int[] numbers = {1, 2, 3, 4};
int sum = Arrays.stream(numbers) // 배열을 스트림으로 변환
.reduce(0, (s1, s2) -> s1 + s2);
배열 {1, 2, 3, 4}를 처리하는 과정:
- 초기값: s1 = 0
- 첫 번째 요소: s1 = 0 + 1 = 1
- 두 번째 요소: s1 = 1 + 2 = 3
- 세 번째 요소: s1 = 3 + 3 = 6
- 네 번째 요소: s1 = 6 + 4 = 10
- 정답!
'코딩 공부 > Programmers-Java' 카테고리의 다른 글
[programmers] 120831 짝수의 합 (0) | 2025.03.05 |
---|---|
[programmers] 120829 각도기 (0) | 2025.03.05 |
[programmers] 120806 두 수의 나눗셈 (0) | 2025.03.05 |
[programmers]120817 배열의평균 (0) | 2025.03.05 |
[programmers]120802 두수의 합 (0) | 2025.03.05 |