• Home
  • About
    • Ryureka Moment photo

      Ryureka

      Sin Prisa, Sin Pausa

    • About Me
    • Facebook
    • Github
    • Youtube
  • Projects
  • Posts
    • Posts
    • ProblemSolvings
    • Tags
    • Blog
    • Examples
  • ProblemSolving
    • ProblemSolving
    • BOJ
    • Programmers
    • SWEA
    • LeetCode
  • FrontEnd
    • FrontEnd
    • HTML
  • BackEnd
    • BackEnd
    • Server
      • Server
      • Spring
      • NodeJS
    • DataBase
      • DataBase
      • MySQL
      • MongoDB
  • Programming
    • Programming
    • Java
    • JS
    • Python
    • CleanCode
  • ComputerScience
    • DataStructure
    • Algorithm

[BOJ] 1920. 수 찾기

15 Apr 2026

Reading time ~1 minute

  • 풀이

풀이

import java.util.Arrays;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int[] arr;
		int[] targetArr;
		int N, M;
		int[] answers;
		N = sc.nextInt();		
		arr = new int [N];
		for(int i = 0; i < arr.length; i++) {
			arr[i] = sc.nextInt();			
		}
		
		M = sc.nextInt();
									
		targetArr = new int [M];
		answers = new int [M];

		for(int i = 0; i < targetArr.length; i++) {
			targetArr[i] = sc.nextInt();
		}				
		
		Arrays.sort(arr);
				
		
		for(int i = 0; i < targetArr.length; i++) {
			int start_index = 0;
			int end_index = arr.length - 1;
			int target = targetArr[i];
			binarySearch(start_index, end_index, target, answers, arr, i);
		}
		
		for(int i = 0; i < answers.length; i++) {
			System.out.println(answers[i]);			
		}
	}
	
	public static void binarySearch(int start_index, int end_index, int target, int[] answers, int[] arr, int i) {
		while(start_index <= end_index) {
			int mid_index = (start_index + end_index) >>> 1;
			if(target < arr[mid_index]) {
				end_index = mid_index - 1;
			} else if(target > arr[mid_index]) {
				start_index = mid_index + 1;
			} else { // target == arr[mid_index];
				answers[i] = 1;
				break;
			}
		}
	}
}


이분탐색정렬 Share