자바/백준

[백준 1920] 수 찾기

슈슈버거 2022. 11. 4. 15:44

문제

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

 

1920번: 수 찾기

첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들

www.acmicpc.net


내가 작성한 코드

import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;

public class qor1920 {
    public static void main(String[] args) throws IOException {
         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
         BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

         int num = Integer.parseInt(br.readLine());

        StringTokenizer st = new StringTokenizer(br.readLine());
        int[] list = new int[num];

        for(int i = 0; i<num; i++){
            list[i] = Integer.parseInt(st.nextToken());
        }

        Arrays.sort(list);

        int count = Integer.parseInt(br.readLine());

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

        for(int i = 0; i<count; i++){
            Integer input = Integer.valueOf(st2.nextToken());

            int result = Arrays.binarySearch(list,input);

            if(result<0){
                bw.write("0");
            }
            else{
                bw.write("1");
            }
            bw.newLine();
        }

        bw.close();
    }
}

처음엔 멋 모르고 이분탐색을 내가 구현하려고 했다 ㅋㅋㅋㅋ 그랬더니 되긴 되는데 시간 초과 뜨더라

친구가 binarySearch 알려줘서 그 친구 썼다니 세상에 코드 짧아지고 시간 단축!!