[프로그래머스] Java 코딩테스트 - 중복된 숫자 개수 (Arrays.stream, filter, count 사용)

yihyun·2025년 3월 28일

코딩테스트

목록 보기
28/105
post-thumbnail

중복된 숫자 개수

✅ 문제 설명

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

✅ 제한사항

1 ≤ array의 길이 ≤ 100
0 ≤ array의 원소 ≤ 1,000
0 ≤ n ≤ 1,000

🔽 소스코드 1 (for문, if문 사용)

💻 풀이

  • for 문으로 배열의 길이만큼 반복해 준다.
  • 배열의 값이 n 과 동일할 경우 answer++ 을 해서 개수를 체크한다.

시간 0.01ms ~ 0.04ms

	public int solution(int[] array, int n) {
        int answer = 0;

        for(int i = 0; i < array.length; i++) {
        	if(array[i] == n) {
        		answer ++;
        	}
        }
        
        return answer;
    }

🔽 소스코드 2 (Arrays.stream 사용)

💻 풀이

  • Arrays.stream(arr) 을 해서 배열을 스트림으로 변환해준다.
  • filter(x -> x == n) 을 사용해 n과 같은 값을 필터링 해준다.
  • count() 로 개수를 count 한 후 리턴한다.
  • ※ long 타입이기 때문에 int로 형변환((int)) 해준다.

시간 0.75ms ~ 1.45ms

전체코드

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

stream 아직은 어렵지만 그래도 감이 잡혀가고 있는 느낌이다!!

profile
개발자가 되어보자

0개의 댓글