본문 바로가기

백준

백준10807

반응형

1. 문제

총 N개의 정수가 주어졌을 떄, 정수 v가 몇개인지 구하는 프로그램 작성하시오.

2. 입력

첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거나 같으며, 100보다 작거나 같다.

3. 출력

첫째 줄에 입력으로 주어진 N개의 정수 중에 v가 몇 개인지 출력한다.

4. 예제

예제 입력1>

11
1 4 1 2 4 2 4 2 3 4 4
2

예제 출력1>

3

예제 입력2>

11
1 4 1 2 4 2 4 2 3 4 4
5

예제 출력2>

0

5. 문제 해석

1) 첫 줄의 숫자는 배열의 크기(비교해야할 숫자의 개수)를 의미한다.

2) 두번째 줄의 숫자는 비교 숫자로, 배열에 저장된다.

3) 세번째 줄의 숫자는 찾아야 할 기준 숫자를 의미한다.

 

즉, 배열의 크기에 맞추어 비교 숫자가 배열에 저장되고, 배열 안에서 기준 숫자와 일치하는 개수를 찾는 프로그램을 구현하는 문제이다.

6. 작성 코드

작성한 코드1> 기능별 분류에 초점을 두어 접근

import java.util.Scanner;

public class Main {
    static Scanner sc = new Scanner(System.in);
    // 최초 각 메소드에서 Scanner 사용 후 closing 하는 방향으로 접근하였으나,
    // 런타임 에러 (NoSuchElement) 발생하여 전역 변수로 선언

    public static void main(String[] args) {
        int[] array = getInputArray();
        int v = getInputValue();
        int check = countOccurrences(array, v);
        System.out.println(check);
        sc.close();
    }

    public static int[] getInputArray() {
        int N = sc.nextInt();
        int[] array = new int[N];
        for (int i = 0; i < N; i++) {
            array[i] = sc.nextInt();
        }
        return array;
    }

    public static int getInputValue() {
        int v = sc.nextInt();
        return v;
    }

    public static int countOccurrences(int[] array, int v) {
        int check = 0;
        for (int i = 0; i < array.length; i++) {
            if (v == array[i]) {
                check++;
            }
        }
        return check;
    }
}

 

작성한 코드2> Main 클래스 1개를 사용하여 접근 (최초 작성 코드)

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[] array = new int[N];
        int check = 0;

        for(int i = 0; i < N; i++) {
            array[i] = sc.nextInt();
        }

        int v= sc.nextInt();

        for(int i = 0; i < array.length; i++) {
            if (v == array[i]){
            	check++;
            }
        }
        System.out.println(check);
    } 
}

 

반응형

'백준' 카테고리의 다른 글

백준10813  (0) 2023.05.23
백준10810  (0) 2023.05.22
백준2562  (0) 2023.05.21
백준10818  (0) 2023.05.19
백준10871  (0) 2023.05.19