-
[BOJ]1920_수찾기_Java알고리즘문제풀이/백준 2021. 6. 16. 14:40
--문제--
https://www.acmicpc.net/problem/1920
10816번: 숫자 카드 2
첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,
www.acmicpc.net
--문제 접근--
이분 탐색의 대표적인 문제로 정렬을 한 이후에 이분 탐색을 구현하여 풀어봤습니다.
package 백준문제풀이; import java.util.Arrays; import java.util.Scanner; public class BOJ_1920_수찾기 { static int N; static int[] map; public static void main(String[] args) { Scanner sc=new Scanner(System.in); N=sc.nextInt(); map=new int[N]; for(int i=0;i<N;i++) { map[i]=sc.nextInt(); } int M=sc.nextInt(); Arrays.sort(map); for(int i=0;i<M;i++) { System.out.println(Check(sc.nextInt())); } } private static int Check(int value) { int start=0; int end=map.length-1; int mid=0; while(start<=end) { mid=(start+end)/2; if(value==map[mid])return 1; else { if(value>map[mid])start=mid+1; else end=mid-1; } } return 0; } }
'알고리즘문제풀이 > 백준' 카테고리의 다른 글
[BOJ]2110_공유기설치_Java (0) 2021.06.17 [BOJ]10816_숫자카드2_Java (0) 2021.06.16 [BOJ]9465_스티커_Java (0) 2021.06.15 [BOJ]1918_후위표기법_Java (0) 2021.06.15 [BOJ]1865_웜홀_Java (0) 2021.06.14