import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer stringTokenizer = new StringTokenizer(bufferedReader.readLine());
ArrayList<String> resultName = new ArrayList<>();
HashSet<String> firstName = new HashSet<>();
int N = Integer.parseInt(stringTokenizer.nextToken());
int M = Integer.parseInt(stringTokenizer.nextToken());
int count = 0;
for(int i = 0; i < N; i++) {
firstName.add(bufferedReader.readLine());
}
for(int i = 0; i < M; i++) {
String name = bufferedReader.readLine();
if(firstName.contains(name)) {
count++;
resultName.add(name);
}
}
bufferedWriter.write(count+"\n");
Collections.sort(resultName);
for(String result: resultName) {
bufferedWriter.write(result+"\n");
}
bufferedWriter.flush();
bufferedReader.close();
bufferedWriter.close();
}
}
HashSet
- 중복된 요소를 허용하지 않는다.
- 검색 및 접근 속도가 상대적으로 빠르다.
- 순차적인 접근은 느리다.
ArrayList
- 중복된 요소를 허용한다.
- 인덱스를 통한 검색 및 접근 속도가 빠르다.
- 순차적이기 때문에 중간에 요소를 삽입 또는 삭제하는 경우 비효율적이다.
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준_JAVA_알고리즘] 13241 최소공배수 (0) | 2024.02.12 |
---|---|
[백준_JAVA_알고리즘] 1934 최소공배수 (1) | 2024.02.12 |
[백준_JAVA_알고리즘] 7785 회사에 있는 사람 (1) | 2024.02.11 |
[백준_JAVA_알고리즘] 10815 숫자 카드 (0) | 2024.02.10 |
[백준_JAVA_알고리즘] 1010 다리 놓기 (0) | 2024.02.09 |