inblog logo
|
muaga's Hub
    BACKJOON-Java

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

    [백준/Java] 10807번 개수 세기 (1차원 배열)
    muaga's avatar
    muaga
    Jun 15, 2024
    [백준/Java] 10807번 개수 세기 (1차원 배열)
    Contents
    문제입력출력답
     

    문제


    총 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
    Contents
    문제입력출력답

    muaga's Hub

    RSS·Powered by Inblog