8. 평균 구하기

김영민·2022년 1월 27일
0

문제📃

1. 문제 설명

정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.

2. 제한 조건

arr은 길이 1 이상, 100 이하인 배열입니다.
arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.

3.입출력 예

arrreturn
[1, 2, 3, 4]2.5
[5, 5]5

풀이

나의 정답👨‍💻

public class Average {	

    // 정수의 객채를 가지는 배열 arr을 매개변수로 하며, 실수를 리턴값으로 돌려주는 메소드를 생성
    public double solution1(int[] arr) {
        double answer = 0;
        double sum = 0;        
        
        for (int i = 0; i < arr.length; i++) {
            // i가 반복해서 돌면서 arr의 i번째 객체가 sum에 더해짐
            sum += arr[i];
        }
        
        // 최종적으로 나온 sum의 값을 배열 arr에 들어있는 객체의 수로 나눔
        answer = sum / arr.length;
        return answer;
	}

심화정답 🏆

    public double solution2(int[] array) {
    
        // 1.Arrays는 배열을 다루기 위해 다양한 메소드가 포함되어 있는 클래스임
        //   Arrays 클래스의 모든 메소드는 클래스 메소드(static한 메소드)이기 때문에
        //   객체 생성 없이 바로 사용 가능함
        //   (Average arr = new Average() <- 객체 선언할 필요가 없음)
        // 2.stream 메소드는 다양한 함수를 이용할 수 있게 해줌
        //   (어떤 기능을 일일이 코딩할 필요 없이 한 단어의 함수로 표현 가능함)
        
        // 배열의 평균을 구하되 값이 안나오면 0을 출력해라
        return (double) Arrays.stream(array).average().orElse(0);
    }

테스트용 코드🎯

    public static void main (String[] args) {
        Average average = new Average();		
		
        int[] arr1 = {1, 2, 3, 4};
        int[] arr2 = {5, 5};
        
        System.out.println(average.solution1(arr1)); // 2.5 출력
        System.out.println(average.solution1(arr2)); // 5 출력
        
        System.out.println(average.solution2(arr1)); // 2.5 출력
        System.out.println(average.solution2(arr2)); // 5 출력
    }
}
profile
Macro Developer

0개의 댓글