[Programmers/JAVA] 평균 구하기

    https://programmers.co.kr/learn/courses/30/lessons/12944

     

    코딩테스트 연습 - 평균 구하기

    정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. 제한사항 arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다. 입출력 예 arr

    programmers.co.kr

     

     

    나의 풀이

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

     

    • arr 배열에 길이만큼 반복문을 돌려서,answer에 arr[i]의 값들을 누적했다. 
    • answer에는 누적된 값 (=총합)이 있고 그걸 arr.length(=배열의 크기)로 나눴다. 

     

     

    다른 방법으로도 풀어보자!

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

     

    • for문 -> for each문으로 변경
      • 배열의 처음부터 마지막까지 반복문으로 돌릴거니까, for each문을 사용하면 더 간결해질 것 같다.
    for each문의 구조
    for (type var : iterate) {
       body-of-loop
    }​


    iterate는 반복의 대상 객체 (여기서는 arr)이 순차적으로 var에 대입되어 for문을 수행한다.
    iterate부분에 들어가는 타입은 배열 및 ArrayList등이 가능하다.

     

    • return 문의 변경
      • 기존의 코드는 구한 평균값을 다시 answer 변수에 담고, answer를 return했는데, return문에 곧바로 answer의 평균값을 담아서 보내는 것이 효율적일 것 같다!

     

     

    👏 배운점

    • for each문을 사용할 수 있는 상황에서는 적극적으로 이용해보자. 보기 좋은 코드가 실행하기도 좋으니까!
    • for each문을 오랜만에 복습했다. 
    • 성공하더라도 다른 풀이 방법 찾아보고 더 효율적으로 짤 수 있는 코드가 있는지 확인하자

     

    728x90

    댓글