본문 바로가기
알고리즘/백준 문제풀이

백준 [자바 java] 10807번 : 개수 세기

by 잔디🌿 2023. 8. 1.

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

     

    10807번: 개수 세기

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

    www.acmicpc.net

    오랜만에 쉬운 문제를 가져왔다!

    -100부터 100까지의 수를 입력받고, 특정 수가 주어지면 해당 수가 몇 번 나왔는지 출력하는 문제이다. 

    나는 배열을 만들어서 수를 입력받을 때마다 해당 인덱스의 수를 하나씩 늘려주는 방식을 사용했다. 

    이때 인덱스가 음수가 될 수는 없으니까 200크기의 배열을 만들고, 입력받은 수에 100을 더한 인덱스의 값을 늘려주었다.

    그럼 -100이 입력되었을 때에는 0번째 배열의 수가 하나씩 올라가고, 100이 입력되었을 때에는 200번째 배열의 인덱스가 하나 늘어난다.

     

    import java.io.*;
    import java.util.*;
    
    
    
    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());
    
            int[] arr = new int[201];
            StringTokenizer st = new StringTokenizer(br.readLine());
    
            for(int i = 0;i<n;i++){
                int a = Integer.parseInt(st.nextToken());
                arr[a+100]++;
            }
            int k = Integer.parseInt(br.readLine());
    
            System.out.println(arr[k+100]);
    
        }
    }

    음수도 입력받는 줄 모르고 풀었다가 에러가 났다..