함수의 인자로 배열을 받고 그 배열의 평균값을 구하여 반환하는 solution 함수를 완성하는 문제이다.
문제가 단순하여 쉽게풀었다. 하지만 다른사람의 답안을 보니 흥미로운 코드가 있었다.
코드가 단 한줄이다. 나는 이 문법을 모르기때문에 차근차근 풀어서 해석을 해보기로 했다.
1. import java.util.Arrays;
Arrays 클래스를 가져온다. 배열에 관한 여러 함수가 들어있다.
2. return Arrays.stream(numbers).average().orElse(0);
- Arrays.stream(numbers) = 배열을 스트림으로 변환한다. 스트림이란 배열의 원소를 순차적으로 처리할 수 있는 기능을 제공한다.
- .average() = 스트림 원소들의 평균값을 계산한다. 이 메서드는 OptionalDouble 자료형으로 반환한다. OptionalDouble은 값이 있을 수도 있고 없을 수도 있는 상황을 처리하기 위한 클래스이다.
- .orElse(0) = 스트림이 비어있어 평균값을 계산할 수 없다면 (numbers 배열이 비어있다면) 기본값으로 0을 반환한다.
또한 Arrays의 다른 주요 메서드들도 있다.
- Arrays.sort(numbers); = numbers 배열을 오름차순으로 정렬한다.
- Arrays.equals(numbers1, numbers2); = 두 배열이 동일한지 비교한다. 반환값은 boolean이다.
- Arrays.fill(numbers, 42); = 배열을 42로 채운다.
이 코드는 간결하지만 시간복잡도가 어떤지 알 수 없기에 나의 답안과 비교해보기로 했다.
생각보다 안좋은 문법이라고 생각했다. 시간의 차이가 눈에띈다. 하지만 내가 몰랐던 문법이었기에 하나 배워간다고 생각하니 기분이좋다. Arrays 클래스의 메서드들을 사용해야할 상황이 있을것이다.
'TIL(사전캠프)' 카테고리의 다른 글
알고리즘 코드카타 2. 짝수의 합(2024-06-05) (0) | 2024.06.05 |
---|---|
데일리 미션. Lv1 랜덤 닉네임 생성기(2024-06-05) (0) | 2024.06.05 |
JAVA란? (2024-06-04) (1) | 2024.06.04 |
개발 용어 정리2(2024-06-04) (0) | 2024.06.04 |
개발 용어 정리1(2024-06-04) (0) | 2024.06.04 |