본문 바로가기
Coding test/Baekjoon

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

by jepa 2023. 8. 14.
728x90
SMALL

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

 

10807번: 개수 세기

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

www.acmicpc.net

v의 범위가 양수만 있었으면 그냥 int[]를 크기에 맞게 할당하여 index를 이용해 카운트를 했을텐데

범위에 음수가 포함되어 음수를 처리하기 귀찮아서

HashMap을 이용해 주어 카운트를 해주었다.

HashMap을 이용하면 주의할 점이 카운트를 처음하게 될 때 get(key)를 하면 예외가 발생한다.

 

그래서 key가 포함되어있는지 확인하는 절차가 필요하다.

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        
        int N = scan.nextInt();
        HashMap<Integer, Integer> map = new HashMap<>();
        for(int i=0 ; i<N ; i++){
            int key = scan.nextInt();
            map.put(key, map.containsKey(key) ? map.get(key)+1 : 1);
            
        }
        int v = scan.nextInt();
        System.out.print(map.containsKey(v) ? map.get(v) : 0);
    }
}
728x90
LIST