본문 바로가기
Java/알고리즘

[Java] 백준-1764 듣보잡

by WaterPunch 2022. 10. 20.
 

1764번: 듣보잡

첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.

www.acmicpc.net

 

이번문제는 key값만 필요하고 value값은 필요없으므로 HashSet을 사용하여 문제를 푼다

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

// 백준 1764번 듣보잡
public class HearSea {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        StringTokenizer st = new StringTokenizer(br.readLine(), " ");

        int N = Integer.parseInt(st.nextToken());
        int M = Integer.parseInt(st.nextToken());

        HashSet<String> noHear = new HashSet<String>();
        for(int i=0; i<N; i++) {
            noHear.add(br.readLine());
        }

        int count = 0;
        StringBuilder sb = new StringBuilder();
        List<String> list = new ArrayList<String>();
        for(int i=0; i<M; i++) {
            // 찾고자 하는 값을 입력받는다
            String temp = br.readLine();
            // 찾고자 하는 값이 HashSet안에 있다면 list에 넣어준다
            if(noHear.contains(temp)) {
                list.add(temp);
                count++;
            }
        }
        br.close();

        // list 정렬
        Collections.sort(list);
        for(String val : list) {
            sb.append(val).append("\n");
        }

        System.out.println(count);
        System.out.println(sb);
    }
}​
반응형

댓글