문제
총 N개의 정수가 주어졌을 때, 정수 v가 몇 개인지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거나 같으며, 100보다 작거나 같다.
출력
첫째 줄에 입력으로 주어진 N개의 정수 중에 v가 몇 개인지 출력한다.
입력 | 출력 |
11
1 4 1 2 4 2 4 2 3 4 4
2 | 3 |
답
◽ Stream API
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for(int c = 0; c < n; c++){
int number = sc.nextInt();
arr[c] = number;
}
int v = sc.nextInt();
long count = Arrays.stream(arr).filter(num -> num == v).count();
System.out.println(count);
sc.close();
}
}
◽ for문
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for (int c = 0; c < n; c++) {
int number = sc.nextInt();
arr[c] = number;
}
int v = sc.nextInt();
int sum = 0;
for (int number : arr) {
if (number == v) {
sum += 1;
}
}
System.out.println(sum);
sc.close();
}
}
❔ Stream API vs for문의 차이
- Stream API가 for문보다 길이는 짧지만, 메모리와 시간이 더 소요되는 이유

위
의 제출은 for문
/ 아래
의 제출은 Stream API
코드의 간결성과 가독성은 높이지만, 연산 과정에서 내부 객체를 생성하고 내부 버퍼링을 일으키는 등의 내부적으로 메모리 사용량을 증가시킬 수 있다.
하지만 for문은 위와 같은 부가적인 작업이 없기 때문에 추가적인 메모리 사용량이 발생하지 않는다.
Share article