baekjoon: 10815(숫자 카드)

강지안·2023년 6월 2일
0

baekjoon

목록 보기
44/186

문제

코드

import java.io.*;
import java.util.Arrays;
import java.util.stream.Stream;

public class q10815 {
    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 N = Integer.parseInt(br.readLine());
        int[] listN = Stream.of(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
        Arrays.sort(listN);

        int M = Integer.parseInt(br.readLine());
        int[] listM = Stream.of(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();

        for(int m : listM)
            bw.write(binarySearch(listN, m) + " ");

        bw.flush();
    }

    public static int binarySearch(int[] list, int value) {
        int start = 0;
        int end = list.length - 1;

        while(start <= end) {
            int mid = (start + end) / 2;

            if(list[mid] > value) end = mid - 1;
            else if(list[mid] < value) start = mid + 1;
            else return 1;
        }
        return 0;
    }
}

학습

String[] to int[] :
Stream.of(listStr).mapToInt(Integer::parseInt).toArray()
참고 : https://codechacha.com/ko/java-convert-string-arr-to-int-arr/

이진탐색은 탐색 리스트를 미리 정렬해주어야 한다.

0개의 댓글