이전 문제인 숫자카드와 거의 유사한 문제이다. 시간초과를 방지하기 위해 BufferedReader를 사용했다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int N=Integer.parseInt(st.nextToken());
int M=Integer.parseInt(st.nextToken());
Set<String> set = new HashSet<>();
String[] word = new String[M];
for(int i=0; i<N; i++)
set.add(br.readLine());
for(int i=0; i<M; i++)
word[i]=br.readLine();
int cnt=0;
for(int i=0; i<M; i++) {
if(set.contains(word[i]))
cnt++;
}
System.out.print(cnt);
}
}