극동대학교\AI컴퓨터공학과\JAVA/프로그래머스 코딩테스트 입문

[프로그래머스, 입문] 중복된 숫자 개수

sundori 2024. 6. 14. 20:54

목차

    문제 설명

    정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때, array에 n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요.

     

    해결법

    자바8의 스트림 기능을 활용하여 최대한 간결하게 작성을 해보았는데...

    우선 Arrays.stream(array)는 제공된 정수형 배열 array를 IntStream으로 변환한다.

     

    Arrays.stream(array).filter(a -> a == n)은 스트림의 각 요소에 대해 주어진 조건을 만족하는 요소만을 스트림에 생성한다.

    여기서 a -> a == n은 람다 표현식으로, 각 요소 'a'가 'n'과 같은지 검사를한다.

     

    Arrays.stream(array).filter(a -> a == n).count()은 생성된 스트림의 요소 갯수를 반환하는데 'long'타입으로 반환한다.
    따라서 int형으로 형 변환이 필요하다.

    import java.util.Arrays;
    class Solution {
        public int solution(int[] array, int n) {
            return (int) Arrays.stream(array).filter(a -> a == n).count();
        }
    }