[코테 스터디 2일차 TIL] 평균구하기

dev_jubby·2024년 7월 23일
1

코테스터디

목록 보기
2/36




💛 오늘의 학습 키워드

[배열] 평균구하기



📝 문제

문제 설명

정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.

제한 조건

  • arr은 길이 1 이상, 100 이하인 배열입니다.
  • arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.

입출력 예

arrretrun
[1,2,3,4]2.5
[5,5]5



💬 내 풀이

import java.util.Arrays;
class Solution {
    public double solution(int[] arr) {
        return (double)Arrays.stream(arr).sum()/arr.length;
    }
}

💻 내 접근 방법!

  1. 어제 InStream 클래스에 대해 알게되어서, 문제를 보니 stream이 생각났다.

    • stream() : 배열 또는 컬렉션 인스턴스에서 이용할 수 있으며, 멀티스레드에서 사용이 가능하다.
    • sum() : 합을 나타내는 메소드이다.
  2. 합계를 배열의 길이로 나눠서 평균을 구하는 방식으로 진행했다.

  3. double 형으로 강제 형 변환을 진행하여 소수점표시가 가능하도록 작성했다.



✨ 다른 사람 풀이

import java.util.Arrays;
class Solution {
    public double solution(int[] arr) {
        return (int) Arrays.stream(array).average().orElse(0);
    }
}
  • 바보같이 sum()은 생각하고 average()는 생각 못했다.
  • 이 외에도 count() , Optional 클래스를 사용하면 min(), max() 도 모두 사용가능하다.

    Optional 클래스 : null이 될 수도 있는 객체를 감싸고 있는 클래스

  • orElse(0) : 비어있으면 0 을 반환한다.



💦 회고

아무래도 Optional 클래스와 Stream 에 대해 좀 더 공부하는 시간을 가져야 할 것 같다




참고
https://www.baeldung.com/java-array-sum-average
https://futurecreator.github.io/2018/08/26/java-8-streams/
https://juno-juno.tistory.com/51

profile
신입 개발자 쥬비의 기술 블로그 입니다.

0개의 댓글