https://www.acmicpc.net/problem/1764
hashmap을 사용해서 먼저 듣도 못한 사람을 저장하고
그 후에 보도 못한 사람을 저장해서 듣도 보도 못한 사람이면 중복이므로 value를 2가 되게 했다.
정렬은 value가 2인 사람의 이름을 arraylist에 저장하여 Collections.sort()로 정렬했다.
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());
HashMap<String, Integer> map = new HashMap<>();
for(int i = 0; i < n; i++) {
map.put(br.readLine(), 1);
}
for(int j = 0; j < m; j++) {
String name = br.readLine();
map.put(name, map.getOrDefault(name, 0) + 1);
}
ArrayList<String> list = new ArrayList<>();
for(String name : map.keySet()) {
if(map.get(name) == 2) {
list.add(name);
}
}
Collections.sort(list);
System.out.println(list.size());
for(String name : list) {
System.out.println(name);
}
}
}