알고리즘/문제

[백준] 10807번 문제: 개수 세기 - JAVA

Retro Rat 2026. 3. 17. 22:56

https://www.acmicpc.net/problem/10807

[문제]


[해설]

1. 문제 이해

정수 N개가 주어지고, 그 다음 줄에 N개의 정수가 공백으로 주어진다.
그리고 마지막으로 특정 정수 v가 주어진다.

👉 해야 할 일은 다음과 같다.

  • 주어진 N개의 정수 중에서
  • 값이 v와 같은 숫자가 몇 개인지 세어서 출력

즉, 특정 값의 등장 횟수를 구하는 문제

2. 핵심 아이디어

이 문제의 핵심은 단순 탐색(브루트포스)이다.

  1. 크기가 N인 배열을 만든다.
  2. N개의 정수를 배열에 저장한다.
  3. 비교할 값 v를 입력받는다.
  4. 배열을 처음부터 끝까지 순회하면서
    • 현재 값이 v와 같으면 카운트 증가
  5. 최종 카운트를 출력한다.

👉 별도의 자료구조나 정렬 없이 반복문 하나로 해결 가능


[코드]

public class BaekJoon_10807 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[] Tong = new int[N];

        for (int i=0; i<N; i++) {
            Tong[i] = sc.nextInt();
        }
        int v = sc.nextInt();
        int cnt = 0;
        for (int i=0; i<N; i++) {
            if(Tong[i] == v) {
                cnt++;
            }
        }
        System.out.println(cnt);
        sc.close();
    }
}