Seize your moment! 👾

안녕하세요. Eric입니다. 제 블로그에 방문해주셔서 감사합니다.

💻 개발공부/Algorithm

[Eirc's 백준] 1764번 - 듣보잡 - Java 알고리즘

Eric_ko 2023. 1. 15. 10:43

 

저는 해쉬를 이용해서 풀어보았습니다.

 


  
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;
}
}

Solved.ac 프로필