프로그래머스- 평균 구하기, 약수의 합

박경희·2023년 12월 20일

코딩테스트

목록 보기
2/69

평균 구하기

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

오류

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 
Index 2 out of bounds for length 2
for (int i = 0; i <= arr.length; i++){
            sum += arr[i];
         }

[1,2,3,4] 의 길이는 4이고 인덱스의 길이는 3인데 <= 를 해버려서 4까지 접근하려다 보니 에러가 났던 것.

다른풀이

import java.util.*;
import java.lang.*;

class Solution {
    public double solution(int[] arr) {

        return Arrays.stream(arr).average().getAsDouble();
    }
}

찾아보니 이렇게 간단히 풀수도 있었다.


약수의 합

class Solution {
    public int solution(int n) {
        int answer = 0;
        int sum = 0;
        if(0 <= n && n <= 3000) {
            for(int i = 1; i <= n; i++){
                if(n % i == 0){
                    sum += i;
                }
            }
            answer = sum;
        }
        return answer;
    }
}

/%를 잘 생각해서 쓰자.

다른풀이

for(inti=1;i<=num/2;i++){
	if(num%i==0){answer+=i;}
	}
	return answer+num;!
 }    

이렇게 나누기2를 해서 for문을 돌 때 반만 돌도록 하는 효율적인 방법도 있다.

0개의 댓글