알고리즘 풀이/백준
[1764] 백준 - 듣보잡(JAVA)
데롱디롱
2021. 8. 11. 15:47
728x90
- 듣도 못한 사람 이름을 key로하는 map을 만든다.
- 듣도 못한 사람 목록을 오름차순 정렬한다. => TreeMap이용
- 듣도 못한 사람이 보도 못한 사람에도 속하면 value를 true로 바꿔준다.
- map을 순회하면서, 듣보잡인 사람(true)을 출력한다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.TreeMap;
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, Boolean> people = new HashMap();
for (int i = 0; i < N; i++)
people.put(br.readLine(), false);
// 오름차순 정렬
TreeMap<String, Boolean> tm = new TreeMap<String, Boolean>(people);
Set<String> keyset = people.keySet();
Iterator<String> keyiterator = tm.keySet().iterator();
// 보도 못한 사람에도 속하면 true
for (int i = 0; i < M; i++) {
String person = br.readLine();
if (tm.containsKey(person))
tm.put(person, true);
}
int num = 0;
StringBuilder sb = new StringBuilder();
for (String key : tm.keySet()) {
if (tm.get(key) == true) {
num++;
sb.append(key + "\n");
}
}
System.out.println(num);
System.out.println(sb.toString());
}
}