배열의 평균 / 향상된 for문

GOYENA·2025년 3월 27일

algorithm

목록 보기
8/12

배열의 평균

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

https://school.programmers.co.kr/learn/courses/30/lessons/120817

✏️ 두 가지 방법

이상하게 처음 코드를 생각할 땐 for문을 지양하고 싶다.
최대한 수식으로 해결해보고 싶은 욕심.

  1. 가우스 공식 활용 (**등차수열이라는 전제 하에)

    배열의 시작값 = m
    배열의 끝 값 = n
    [ 원소의 갯수(m+n) ] / 2 = 원소들의 총 합
    원소들의 총 합 / 원소의 갯수 = 원소들의 평균
    ∴ (n+m)/2 = 원소의 평균
    (array[0]+array[array.length-1])/2 = 원소의 평균
    평균 값은 소수일 수 있으므로 double로 변환

class Solution {
    public double solution(int[] numbers) {
        double answer = (double)(numbers[0]+numbers[numbers.length-1])/2;
        return answer;
    }
}
  1. for문 활용(** 배열이 등차수열이 아닐 수도 있음, ∴ for문이 바람직함)
class Solution {
    public double solution(int[] numbers) {
        double answer = 0;
        for(int i=0; i<numbers.length;i++){
            answer += numbers[i];
        }
        answer /= numbers.length;
        return answer;
    }
}

💛문제를 통해 배운 것

향상된 for문 for문에 콜론(:) 사용

  • 의의 : 간결하고 직관적인 코드사용 가능
  • 한계 : 모든 상황에 적합하진 않음.
    인덱스를 통해 조건을 부여하고 싶을 때 부적합함.
  • 형태 : for( 타입 변수 : 배열 또는 컬렉션 ){
    // 반복할 코드
    }
for(int number : numbers){
    answer+=number;
}

기존의 for문으로 만든 코드 → 향상된 for문

class Solution {
    public double solution(int[] numbers) {
        double answer = 0;
        for(int number : numbers){
            answer+=number;
        }
        answer/=numbers.length;
        return answer;
    }
}
profile
헤헷

0개의 댓글