알고리즘

백준 4158번 CD (JAVA)

박카스마시며코딩 2022. 8. 26. 20:13

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

 

4158번: CD

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 상근이가 가지고 있는 CD의 수 N, 선영이가 가지고 있는 CD의 수 M이 주어진다. N과 M은 최대 백만이다. 다음 줄

www.acmicpc.net

저는 구현을 통해서 문제를 해결하였습니다.

저는 처음 n개의 입력을 set에 넣고 m개의 입력에 대해 set에 존재하는지를 판단하여 문제를 해결하였습니다.

package BOJ.etc;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.function.Function;

public class BOJ_4158 {

    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        Function<String,Integer> stoi = Integer::parseInt;
        while(true){
            st = new StringTokenizer(br.readLine());
            int n = stoi.apply(st.nextToken());
            int m = stoi.apply(st.nextToken());
            if(n == 0 && m == 0){
                break;
            }
            Set<Integer> set = new HashSet<>();
            for(int i = 0 ; i < n ; i++){
                int num = stoi.apply(br.readLine());
                set.add(num);
            }
            int cnt = 0;
            for(int i = 0 ; i < m ; i++){
                int num = stoi.apply(br.readLine());
                if(set.contains(num)){
                    cnt++;
                }
            }
            System.out.println(cnt);
        }
    }
}