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

Eric·2023년 1월 15일
1

BoJ(백준)

목록 보기
1/6

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

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; 
    }
}
profile
Ærlighed i små ting er ikke nogen lille ting.

0개의 댓글