[백준 1764] 듣보잡 (실버 4) 문제 풀이- 자바 Java 해시

2023. 1. 14. 14:15네카라쿠배 취준반 - 프로그래머스 문제 풀이

 

0. 자세한 설명은 YouTube 영상으로

 

1. 해시를 활용한 풀이

import java.util.*;
import java.io.*;

class Main {
    public static void main(String[] args) throws IOException {
        // 0. 입력 및 초기화
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        StringTokenizer st = new StringTokenizer(br.readLine());
        int N = Integer.parseInt(st.nextToken());
        int M = Integer.parseInt(st.nextToken());

        // 1. hash에 듣도 못한 사람 반영
        HashMap<String, Integer> hash = new HashMap<>();
        for (int i = 0; i < N; i++)
            hash.put(br.readLine(), 1);

        // 2. hash에 보도 못한 사람이 존재하는지 확인
        ArrayList<String> answer = new ArrayList<>();
        for (int i = 0; i < M; i++) {
            String name = br.readLine();
            if (hash.containsKey(name)) answer.add(name);
        }

        // 3. 출력
        Collections.sort(answer);
        bw.write(answer.size() + "\n");
        for(int i = 0; i < answer.size(); i++){
            bw.write(answer.get(i));
            bw.newLine();
        }

        bw.flush();
        bw.close();
        br.close();
    }
}

 

반응형