백준

백준 14425: 문자열 집합(java)

unhyepnhj 2024. 7. 19. 15:06

문제


풀이

 

앞의 탐색 문제들과 동일하게 풀이한다. N, S에 포함된 문자열, M, 검사해야 하는 문자열들을 입력받은 후 nArr에 대해 이진 탐색을 진행해 mArr[i] 요소가 포함되었는지 판단해 주면 된다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
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());
		
		String[] nArr=new String[N];
		for(int i=0; i<N; i++) {
			nArr[i]=br.readLine();
		}
		Arrays.sort(nArr);
		
		String[] mArr=new String[M];
		for(int i=0; i<M; i++) {
			mArr[i]=br.readLine();
		}
		
		int count=0;
		for(int i=0; i<M; i++) {
			int bin=Arrays.binarySearch(nArr, mArr[i]);
			if(bin>-1)
				count++;
		}
		
		System.out.println(count);
	}
}