import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Scanner;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String firstline = br.readLine();
StringTokenizer st = new StringTokenizer(firstline);
int[] number = new int[2];
int x =0;
while(st.hasMoreTokens())
{
number[x++] = Integer.parseInt(st.nextToken());
} //number[0] = 주어진 줄 number[1]은 몇개의 줄을 넣을지
String[] text1 = new String[number[0]];
for (int i =0; i < number[0]; i++)
{
text1[i] = br.readLine();
}
String[] text2 = new String[number[1]];
for (int i=0; i < number[1]; i++)
{
text2[i] = br.readLine();
}
int count=0;
for (int i=0; i< number[0]; i++)
{
for (int j =0; j < number[1]; j++)
{
if (text2[j].equals(text1[i]))
{
count++;
}
}
}
System.out.println(count);
}
} 지금 이 방식으로 제출하였는데 시간초과가 안 뜨고 풀려서 놀랐다. 그래서 지피티한테 새로운 코드로 알려달라고 해서 Set set = new HashSet<>();을 배웠다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
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<>();
for (int i = 0 ; i < N; i++)
{
set.add(br.readLine());
}
int count=0;
for (int j =0; j < M; j++)
{
if (set.contains(br.readLine()))
{
count++;
}
}
System.out.println(count);
}
} 이제 슬슬 Set,HashSet을 사용하는 문제가 나오는 것 같다!
PS. 지난 며칠간은 군대에 있어서 문제를 못 풀었고 드디어 오늘 전역한지 이틀차이다. 다시 매일매일 백준 1문제씩 풀어야겠다!!