이 문제의 핵심은 크게 아래와 같이 볼 수 있다.
- double 자료형 확인 (소수점)
- 반복문과 Stream을 사용하여 배열의 합계와 평균을 계산 (더 자세히 공부하러 가기 ✏️)
forEach로 numbers
의 모든 배열을 double
형으로 합쳐준 다음, 배열의 길이로 나눠 평균값을 구했다.
class Solution {
public double solution(int[] numbers) {
double answer = 0;
for(double num : numbers) {
answer += num;
}
return answer/numbers.length;
}
}
다른사람의 코드를 보니 stream
을 사용해서 푸는 방법도 있길래 다시 한 번 풀어보았다. 속도는 for문을 돌려서 연산하는 것이 훨씬 빠르지만, 가독성 때문인지 stream
을 많이 쓰는 추세인듯 하다.
return
자료형이 double
이기 때문에 getAsDouble()
을 꼭 붙여줘야한다.
import java.util.Arrays;
class Solution {
public double solution(int[] numbers) {
return Arrays.stream(numbers).average().getAsDouble();
}
}