[백준-Java] 10807. 개수 세기

Dreamer·2024년 1월 24일
0

문제

문제 요약

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

입력, 출력

입력

  • 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다.
  • 둘째 줄에는 정수가 공백으로 구분되어져있다.
  • 셋째 줄에는 찾으려고 하는 정수 v가 주어진다.
    -100 <= 입력으로 주어지는 정수, v <= 100

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

예제 입력, 출력 ⭣

예제 입출력 예시


해결 방법

구현코드


// 풀이 방법
// BufferedReader로 3줄 받기
// for문을 돌면서 v와 같은 게 있는지 체크
// 같다면 count변수 cnt + 1 변경
// cnt 출력

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int n = Integer.parseInt(br.readLine());
        String bundle = br.readLine();
        int v = Integer.parseInt(br.readLine());
        int cnt = 0;    // 중복이면 count + 1

        ArrayList<Integer> arr = new ArrayList<>(); // 비교할 기존 배열에 값 넣기
        StringTokenizer st = new StringTokenizer(bundle, " ");
        for (int i = 0; i < n; i++) {
            arr.add(Integer.valueOf(st.nextToken()));
        }
		
        // 반복문 돌면서 v와 같은지 비교
        for (int i = 0; i < arr.size(); i++) {
            if (arr.get(i) == v) {
                cnt ++;
            }
        }

        System.out.println(cnt);
    }
}

추가로 공부할 것

코딩테스트 전 힌트 문제로 선정받은 문제인데, 주제가 해시테이블이다.
해시테이블과 연관되어 생각해보기!

profile
Moving forward based on records

0개의 댓글