[20231107] Lv 1. 평균 구하기

일단 기록하기·2023년 11월 23일

프로그래머스 - 평균 구하기

정수 배열의 평균값을 구하는 문제이다. 반환값은 double이다.

[나의 풀이]

class Solution {
    public double solution(int[] arr) {
        double sum = 0;
        for(int i=0; i<arr.length; i++) {
            sum += arr[i];
        }    
        return sum / arr.length;
    }
}
  • 평균값을 구하기 위해 배열의 값을 모두 더해야 하기 때문에 for문을 돌려 합산값을 도출한다.
  • for문의 결과값을 배열의 길이로 나눈 값을 반환한다.

참고

배열의 평균값을 구할 수 있는 방법이 뭐가 있을지 생각해봄
1. for문
2. stream
3. Math -> 없음
4. Arrays -> 없음
3, 4번 클래스는 관련 메서드 없었고, stream만 가능성이 있어보임

* stream을 이용한 풀이

class Solution {
    public double solution(int[] arr) {
    
        return IntStream.of(arr).average().getAsDouble();
    }
}
  1. 정수 배열을 stream으로 변환
    • Arrays.stream(arr) -> Stream이 아닌 IntStream으로 변환
    • IntStream.of(arr)
  2. IntStream의 average() 연산 이용
  3. average()의 반환형은 OptionalDouble 이다. getAsDouble()로 double 값을 리턴할 수 있다.

참고 : OptionalDouble?

Class OptionalDouble
A container object which may or may not contain a double value. If a value is present, isPresent() will return true and getAsDouble() will return the value.
...
double 값이 있는지 나타내는 컨테이너 클래스로 값이 있다면 isPresent()와 getAsDouble()을 사용할 수 있다.

profile
모르는 건 일단 기록이라도 해놔야

0개의 댓글