[백준/Java] 10807번 개수 세기 (1차원 배열)

[백준/Java] 10807번 개수 세기 (1차원 배열)
muaga's avatar
Jun 15, 2024
[백준/Java] 10807번 개수 세기 (1차원 배열)
 

문제


총 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문보다 길이는 짧지만, 메모리와 시간이 더 소요되는 이유
notion image
의 제출은 for문 / 아래의 제출은 Stream API
코드의 간결성과 가독성은 높이지만, 연산 과정에서 내부 객체를 생성하고 내부 버퍼링을 일으키는 등의 내부적으로 메모리 사용량을 증가시킬 수 있다. 하지만 for문은 위와 같은 부가적인 작업이 없기 때문에 추가적인 메모리 사용량이 발생하지 않는다.
Share article

muaga's Hub