본문 바로가기

Algorithm/Baekjoon

[백준_JAVA_알고리즘] 1920 수 찾기 #해시

 

해시맵을 이용하면 쉽게 해결할 수 있습니다. 

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder stringBuilder = new StringBuilder();
        HashMap<Integer, Integer> hashMap = new HashMap<>();

        int N = Integer.parseInt(bufferedReader.readLine());
        StringTokenizer stringTokenizer = new StringTokenizer(bufferedReader.readLine());
        for(int i = 0; i < N; i++){
            int num = Integer.parseInt(stringTokenizer.nextToken());
            hashMap.put(num, 1);
        }

        int M = Integer.parseInt(bufferedReader.readLine());
        stringTokenizer = new StringTokenizer(bufferedReader.readLine());
        for(int i = 0; i < M; i++){
            int num = Integer.parseInt(stringTokenizer.nextToken());
            stringBuilder.append(hashMap.containsKey(num) ? 1 : 0).append("\n");
        }
        System.out.print(stringBuilder);
    }
}

 

hashmap.containsKey()를 이용하여 해당 숫자가 존재하는지 1과 0으로 구분하면 됩니다.

 

.

.

.

 

문제는 아래에서 확인할 수 있습니다.

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