백준 JAVA11 1764번 : 듣보잡
듣보잡
문제
김진영이 듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하는 프로그램을 작성하시오.
Flow.
- 듣도 못한 사람 && 보도 못한 사람
- 즉, 2곳 다 속해있는 사람은 듣보잡이다.
- HashMap을 사용하여 해당 사람(Key) 의 Value가 2인 사람들이 듣보잡 명단이 될것이다.
- 반복문에서 Value가 2인사람이 나올 때 마다 카운트를 해주었고, 문제의 조건에 사전순으로 출력한다 라는 조건 때문에, 정답 리스트를 만들어 추가해주었다.
- 총 카운트와 정렬된 정답리스트를 출력
Code.
package hash;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;
public class P1764 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
HashMap<String, Integer> map = new HashMap<>();
for (int i = 0; i < n + m; i++) {
String key = sc.next();
map.put(key, map.getOrDefault(key, 0) + 1);
}
ArrayList<String> answer = new ArrayList<>();
int cnt = 0;
for (String key : map.keySet()) {
if (map.get(key).equals(2)) {
cnt++;
answer.add(key);
}
}
answer.sort(null);
System.out.println(cnt);
for (String s : answer) {
System.out.println(s);
}
}
}
Leave a comment