코딩 공부/Programmers-Java

[programmers] 12944 평균 구하기

sintory-04 2025. 3. 5. 10:17

문제 설명

정수를 담고 있는 배열 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

- 정답!