코딩테스트

프로그래머스 배열의 평균값, stream사용 (JAVA)

곽경희 2022. 12. 27. 00:29

코딩테스트 1일차

 

문제 설명

정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.

 

제한사항

  • 0 ≤ numbers의 원소 ≤ 1,000
  • 1 ≤ numbers의 길이 ≤ 100
  • 정답의 소수 부분이 .0 또는 .5인 경우만 입력으로 주어집니다.

입출력 예

number result
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 5.5
[89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99] 94.0

 

초기 코드

 

class Solution {
    public double solution(int[] numbers) {
        double answer = 0;
        return answer;
    }
}

 

결과 코드

 

class Solution {
    public double solution(int[] numbers) {
        double answer = 0;
        double a=0;
        for(int i=0; i<numbers.length; i++){
            a += numbers[i];
        }
        answer=a/numbers.length;
        return answer;
    }
}

 

코드 설명

for문을 이용해 numbers.length(numbers 배열의 길이)보다 작으면 계속 반복해준다. a라는 변수에 numbers[i]값을 계속 더해준다. 그 다음 for문을 나와 answer에 배열의 합이 들어있는 a를 배열의 길이만큼 나눠서 평균값을 리턴한다

 

stream을 사용한 코드


import java.util.Arrays;

class Solution {
    public double solution(int[] numbers) {
        return Arrays.stream(numbers).average().orElse(0);
    }
}