1764 - 듣보잡(S4)

블랑·2023년 6월 15일
0

BOJ

목록 보기
11/11

문제

https://www.acmicpc.net/problem/1764

풀이

HashSet으로 값을 추가한 후, contains를 사용하여 중복값을 확인.
이후 중복값은 PriorityQueue를 통해 출력하였음.
Class에 Comparator를 굳이 달 필요는 없었다.

코드

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

public class Main {
    static int N, M;
    static HashSet<String> hs = new HashSet<>();
    static PriorityQueue<String> pq = new PriorityQueue<>();
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st = new StringTokenizer(br.readLine());
        N = Integer.parseInt(st.nextToken());
        M = Integer.parseInt(st.nextToken());

        for(int i = 0; i < N; i++) {
            hs.add(br.readLine());
        }

        for(int i = 0; i < M; i++) {
            StringBuilder now = new StringBuilder(br.readLine());
            if(hs.contains(now.toString())) pq.offer(now.toString());
        }

        //출력
        bw.write(pq.size() + "\n");
        while (!pq.isEmpty()) {
            bw.write(pq.poll() + "\n");
        }

        bw.close();
    }
}
profile
안녕하세요.

0개의 댓글