💡 문제

💬 입출력 예시

📌 풀이(소스코드)
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;
import static java.lang.Integer.parseInt;
public class Main {
static int n, m;
static Map<Integer, Integer> map = new HashMap<>();
static StringBuilder result = new StringBuilder();
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
n = parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
for (int i = 0; i < n; i++) {
int key = parseInt(st.nextToken());
map.put(key, map.getOrDefault(key, 0) + 1);
}
m = parseInt(br.readLine());
st = new StringTokenizer(br.readLine(), " ");
for (int i = 0; i < m; i++) {
int key = parseInt(st.nextToken());
result.append(map.getOrDefault(key, 0)).append(" ");
}
System.out.println(result);
}
}
📄 해설
- 해시맵 자료구조를 사용하면 쉽게 해결이 가능한 문제
- 아주 간단한 로직을 사용하면 해결됨
- N개의 수를 입력받으며 각 수를 키 값으로하여 해시맵에 넣음
- 이때, 해당 수가 이미 해시맵에 존재하면 그 값을 증가시키고, 아니라면 1로 넣음
- M 개의 수를 입력받으며 각 수를 키로하여 해시맵에서 값을 얻어 출력