가볍게 기초부터 화이팅
배열의 평균값을 구하는 간단한 문제다
단순하게 일차원적으로 생각하면
모두 더한 값을 배열의 길이로 나누면 된다
class Solution {
public double solution(int[] numbers) {
double answer = 0;
for (int i=0; i<numbers.length; i++) {
answer += numbers[i];
}
return answer / numbers.length;
}
}
실행 결과는 성공
근데 뭔가 java의 함수가 있을 거 같은 느낌이다..
average라는 함수로 분명 function이 없을리가 없는데
그래서 구글링 !
import java.util.Arrays;
class Solution {
// 다른풀이 stream()
public double solution(int[] numbers) {
return Arrays.stream(numbers).average().orElse(0);
}
}
역시나 훨신 간단한 풀이가 있었다
stream() 은 데이터의 연속적인 흐름을 나타내는 기능이며
컬렉션(Collection)과 배열 등의 데이터 소스로부터 데이터를 받아들이고,
다양한 중간 연산과 최종 연산을 통해 데이터를 처리하는 기능을 제공한다.
이론적으로 봤을 땐 어렵다..
배열의 연산에서 유용하게 쓸 수 있는 라이브러리인 듯 하다
average()로 배열의 평균값을 구하되
평균값이 없는 경우를 대비하여 orElse(0) 를 같이 사용한다
평균값이 없을 경우는 0을 리턴하겠다는 뜻
stream()으로 활용할 수 있는 기능이 굉장히 많다 !! 외워서 사용하기는 힘들고 손에 익혀야겠다..
'[JAVA]' 카테고리의 다른 글
[프로그래머스 JAVA] 두 수의 나눗셈 (0) | 2024.06.20 |
---|---|
[JAVA][프로그래머스 JAVA] 짝수의 합 (0) | 2024.06.20 |
[프로그래머스 JAVA] 정수 부분 (0) | 2024.06.19 |
[프로그래머스 JAVA] PCCP 기출문제 1번 붕대 감기 문제 풀이 (1) | 2023.12.10 |
[프로그래머스 JAVA] k진수에서 소수 개수 구하기 문제 풀이 (0) | 2023.12.02 |