
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문을 돌 때 반만 돌도록 하는 효율적인 방법도 있다.