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

๐ŸŽฏ ๋ฌธ์ œ ํ•ต์‹ฌ

  • ์ˆซ์ž ์นด๋“œ ์ตœ๋Œ€ ๊ฐœ์ˆ˜ : 500,000๊ฐœ
  • ์‹œ๊ฐ„์ œํ•œ : 1์ดˆ

๐Ÿ“ ํ’€์ด : HashMap

import java.io.*;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;
public class Main {
// M๊ฐœ์˜ ์ˆ˜์— ๋Œ€ํ•ด์„œ, ๊ฐ ์ˆ˜๊ฐ€ ์ ํžŒ ์ˆซ์ž ์นด๋“œ๋ฅผ ๋ช‡ ๊ฐœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด ์ถœ๋ ฅ
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
/* [1] ์ˆซ์ž ์นด๋“œ ๊ฐœ์ˆ˜ N(1 โ‰ค N โ‰ค 500,000) */
int N = Integer.parseInt(br.readLine());
Map<Integer, Integer> cardCntMap = new HashMap<>();
/* [2] ์ˆซ์ž ์นด๋“œ์— ์ ํ˜€์žˆ๋Š” ์ •์ˆ˜(-10,000,000 โ‰ค x โ‰ค 10,000,000) */
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
int num = Integer.parseInt(st.nextToken());
// ๊ฐ ์ˆซ์ž์˜ ๊ฐœ์ˆ˜๋ฅผ ํ•ด์‹œ๋งต์— ์ €์žฅโœจ
cardCntMap.put(num, cardCntMap.getOrDefault(num, 0) + 1);
}
/* [3] ์ •์ˆ˜ ๊ฐœ์ˆ˜ M(1 โ‰ค M โ‰ค 500,000) */
int M = Integer.parseInt(br.readLine());
/* [4] ๋ช‡ ๊ฐœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ˆซ์ž ์นด๋“œ์ธ์ง€ ๊ตฌํ•ด์•ผ ํ•  M๊ฐœ์˜ ์ •์ˆ˜(-10,000,000 โ‰ค x โ‰ค 10,000,000) */
StringTokenizer st2 = new StringTokenizer(br.readLine());
StringBuilder sb = new StringBuilder();
for (int i = 0; i < M; i++) {
int num = Integer.parseInt(st2.nextToken());
// ํ•ด์‹œ๋งต์—์„œ ํ•ด๋‹น ์ˆซ์ž๊ฐ€ ๋ช‡ ๊ฐœ ์žˆ๋Š”์ง€ ๋ฐ”๋กœ ๊ฐ€์ ธ์˜ดโœจ
sb.append(cardCntMap.getOrDefault(num, 0)).append(" ");
}
System.out.println(sb);
}
}
yewon31