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
'Coding test > Baekjoon' 카테고리의 다른 글
[백준][JAVA] 2830번: 행성x3 - 3%에서 실패 해결... (0) | 2023.08.14 |
---|---|
[백준][JAVA] 9012번: 괄호 (0) | 2023.08.14 |
[백준][JAVA] 1158번: 요세푸스 문제 (0) | 2023.08.12 |
[백준][JAVA] 26008번: 해시 해킹 (0) | 2023.08.12 |
[백준][JAVA] 10818번: 최소, 최대 (0) | 2023.08.09 |