728x90
반응형
문제
숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 몇 개 가지고 있는지 구하는 프로그램을 작성하시오.
체감 난이도
실버4
문제 풀이 소감
HashMap 을 제대로 활용할 수 있는지
getOrDefault 사용법을 제대로 숙지할 수 있음
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.StringTokenizer;
/**
* 숫자 카드는 정수 하나가 적혀져 있는 카드
* 숫자카드 N개를 가지고 있고
* 정수 M개가 주어졌을 떄 이 수가 적혀있는 숫자 카드를 상근이가 몇개 가지고 있는지?
*/
public class Main {
static int N,M;
static int[] ListA;
static HashMap<Integer, Integer> HashA = new HashMap<>();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
ListA = new int[N];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
int num = Integer.parseInt(st.nextToken());
HashA.put(num, HashA.getOrDefault(num, 0) + 1);
}
M = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
st = new StringTokenizer(br.readLine());
for (int i = 0; i < M; i++) {
int num2 = Integer.parseInt(st.nextToken());
sb.append(HashA.getOrDefault(num2, 0)).append(" ");
}
System.out.println(String.valueOf(sb).trim());
}
}
문제 바로가기
https://www.acmicpc.net/problem/10816
728x90
반응형
'알고리즘 > Hash' 카테고리의 다른 글
백준 알고리즘 [백트래킹] 나는야 포켓몬 마스터 이다솜_1620_실버4 (1) | 2024.12.01 |
---|---|
백준 알고리즘 [해시] 문자열집합_14425_실버5 (1) | 2024.12.01 |
백준 알고리즘 [해시] 숫자카드_10815_실버5 (0) | 2024.12.01 |
백준 알고리즘 [해시] 듣보잡_1764_실버4 (0) | 2024.12.01 |
백준 알고리즘 [해시] 수찾기_1920_실버4 (0) | 2024.12.01 |