
저는 해쉬를 이용해서 풀어보았습니다.
import java.util.*;
public class N1764 {
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
int m = kb.nextInt();
String[] a = new String[n];
String[] b = new String[m];
for (int i = 0; i < n; i++) {
a[i] = kb.next();
}
for (int i = 0; i < m; i++) {
b[i] = kb.next();
}
for (String x : solution(a, b)) {
System.out.println(x);
}
}
public static ArrayList<String> solution(String[] a , String [] b) {
ArrayList<String> answer = new ArrayList<>();
HashMap<String, Integer> mapA = new HashMap<>();
//듣도 못한사람 넣기
for (String x : a) {
mapA.put(x, mapA.getOrDefault(x, 0) + 1);
}
//보도 못한 사람 값 중복체크
for (String x : b) {
mapA.put(x, mapA.getOrDefault(x, 0) -1); // 중복된 String 제거
}
int cnt = 0;
for (String key : mapA.keySet()) {
if (mapA.get(key) == 0) {
answer.add(key);
cnt++; // 갯수세기
}
}
answer.add(String.valueOf(cnt));
Collections.sort(answer); // 정렬
return answer;
}
}

'💻 개발공부 > Algorithm' 카테고리의 다른 글
[Eric's 백준] 10809번 - 알파벳찾기 - Java (0) | 2023.01.26 |
---|---|
[Eric's 백준] 3273번 - 두 수의 합 - Java (0) | 2023.01.18 |
[Eric's 백준] 1712번 - 손익분기점 - Java (0) | 2023.01.17 |
[Eric's 백준] 1806번 - 부분합 - Java (0) | 2023.01.16 |
[Eric's 백준] 27160번 - 할리갈리 - Java - 2023보드게임컵 (0) | 2023.01.15 |