문제 설명
- 정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.
제한사항
- 0 ≤ numbers의 원소 ≤ 1,000
- 1 ≤ numbers의 길이 ≤ 100
- 정답의 소수 부분이 .0 또는 .5인 경우만 입력으로 주어집니다.
입출력 예

코드
class Solution {
public double solution(int[] numbers) {
double answer = 0;
for(int i: numbers){
answer+= i;
}
return answer/numbers.length;
}
}
문제 다 풀고 다른 풀이 구경하고 있었는데 Arrays.stream을 사용하는 코드를 발견함
Arrays.stream()
public class Main {
public static void main(String[] args) throws IOException {
int[] numbers = {1,2,3,4,5,6,7,8,9,10};
IntStream intStream = Arrays.stream(numbers);
intStream.forEach(s-> System.out.print(s+" "));
}
}
출력 결과
1 2 3 4 5 6 7 8 9 10
import java.util.Arrays;
class Solution {
public double solution(int[] numbers) {
return Arrays.stream(numbers).average().orElse(0);
}
}
orElse()
- Optional에서 사용
- null값이 있어도 실행 가능
- orElse(0) → null값이면 0 출력
문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/120817
'Study > Test(Java)' 카테고리의 다른 글
| [백준] 9012 괄호 Java (0) | 2023.05.18 |
|---|---|
| [백준] 9093 단어 뒤집기 Java (0) | 2023.05.17 |
| [프로그래머스] 피자 나눠 먹기(3) Java (0) | 2023.05.17 |
| [프로그래머스] 피자 나눠 먹기(2) Java (0) | 2023.05.17 |
| [프로그래머스] 피자 나눠 먹기(1) Java (0) | 2023.05.17 |