[백준] 1920 수 찾기

leeng·2023년 8월 1일
0
import java.util.Arrays;

public class FindNumber {
    public static void main(String[] args) {
        int n = 5;
        String arrayStr = "4 1 5 2 3";
        int m = 5;
        String findStr = "1 3 7 9 5";
    }

    String find(int n, int m, String arrayStr, String findStr) {
        int[] arr = Arrays.stream(arrayStr.split(" ")).mapToInt(Integer::parseInt).sorted().toArray();
        int[] findNumArr = Arrays.stream(findStr.split(" ")).mapToInt(Integer::parseInt).toArray();

        String result = "";

        for (int i = 0; i < m; i++) {
            int findNum = findNumArr[i];
            int start = 0;
            int end = arr.length -1;
            int mid = (start + end) / 2;
            int midValue = arr[mid];

            while (true) {
                if (midValue == findNum) {
                    System.out.println(1);
                    result += "1";
                    break;
                } else if (midValue < findNum) {
                    // 오른쪽을 남긴다
                    start = mid + 1;
                } else if (midValue > findNum) {
                    // 왼쪽을 남긴다
                    end = mid - 1;
                }
                if (end < start) {
                    result += "0";
                    System.out.println(0);
                    break;
                }
                mid = (start + end) / 2;
                midValue = arr[mid];

            }
        }
        System.out.println("result: " + result);
        return result;
    }
}
profile
기술블로그보다는 기록블로그

0개의 댓글