[알고리즘문제풀기] 배열의 평균값

silver's avatar
Nov 19, 2024
[알고리즘문제풀기] 배열의 평균값
 

문제

 

내가 작성한 정답

class Solution { public double solution(int[] numbers) { double answer = 0; for(int number: numbers){ answer += number; } return (double)answer/numbers.length; } }
 

다른 사람들의 풀이

import java.util.Arrays; class Solution { public double solution(int[] numbers) { return Arrays.stream(numbers).average().orElse(0); } }
 

스트림

Java 8에서 도입된 기능으로, 데이터 처리를 간소화하고 함수형 프로그래밍 스타일을 Java에 도입한 중요한 요소이다. 컬렉션(List, Set, Map 등)이나 배열의 데이터를 효율적이고 선언적으로 처리할 수 있도록 도와준다.
 
  • Stream: 데이터를 처리하기 위한 연속적인 데이터 흐름.
  • 중간 연산: 데이터 변환 및 필터링 (지연 실행).
  • 터미널 연산: 최종 결과 생성 (스트림 처리 시작).
 
  1. 컬렉션이나 배열에서 스트림 생성이 가능하다.
    1. List<String> list = Arrays.asList("a", "b", "c"); Stream<String> stream = list.stream();
  1. 중간 연산: 스트림에서 데이터를 변환하거나 필터링하는 작업으로 지연(lazy) 방식으로 실행된다.
    1. Stream<String> filtered = stream.filter(s -> s.startsWith("a"));
  1. 터미널 연산: 스트림의 최종 결과를 생성하는 작업으로 터미널 연산이 실행되면 스트림의 처리가 시작된다.
    1. filtered.forEach(System.out::println); // "a" 출력
 
 
import java.util.Arrays; import java.util.List; public class StreamExample { public static void main(String[] args) { List<String> list = Arrays.asList("apple", "banana", "avocado", "blueberry"); list.stream() // 스트림 생성 .filter(s -> s.startsWith("a")) // 'a'로 시작하는 단어 필터링 .forEach(System.out::println); // 결과 출력 } }
 
Share article

silver