본문 바로가기

코딩테스트

[알고리즘 문제 풀이] 백준 1920 수 찾기 ( 해시 응용 )

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




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


import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
public class Main {


    static int N,M;
    static ArrayList<Integer> ans = new ArrayList<>();
    static Map<Integer,Boolean> nMap = new HashMap<>();

    public static void main(String[] args) throws IOException{

        BufferedReader br =new BufferedReader(new InputStreamReader(System.in));

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

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

        st = new StringTokenizer(br.readLine());
        for(int i=0;i<N;i++){
            nMap.put(Integer.parseInt(st.nextToken()),true);
        }

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

        st = new StringTokenizer(br.readLine());
        for(int i=0;i<M;i++){
            Integer tempKey = Integer.parseInt(st.nextToken());


            // true : 존재 , false : 부재
            Boolean result = nMap.getOrDefault(tempKey,false);


            if (result) {
                ans.add(1);
            } else {
                ans.add(0);
            }

        }

        for(int i=0;i<ans.size();i++){
            System.out.println(ans.get(i));
        }











    }
}