본문 바로가기

알고리즘/BAEKJOON

10815 숫자 카드_Binary Search

10815번: 숫자 카드 (acmicpc.net)

 

10815번: 숫자 카드

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,

www.acmicpc.net

package Binary_Search;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Baekjoon_10815_숫자카드 {

	public static void main(String[] args) throws Exception {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.parseInt(br.readLine());
		long[] card = new long[N];
		StringTokenizer st = new StringTokenizer(br.readLine());
		for(int i = 0; i < N; i++) {
			card[i] = Long.parseLong(st.nextToken());
		}
		
		Arrays.sort(card);
		
		int M = Integer.parseInt(br.readLine());
		st = new StringTokenizer(br.readLine());
		boolean flag = false;
		for(int i = 0; i < M; i++) {
			int num = Integer.parseInt(st.nextToken());
			int left = 0;
			int right = N-1;
			
			while(left <= right) {
				int mid = (left+right) / 2;
				
				if(num < card[mid]) right = mid - 1;
				else if(num > card[mid]) left = mid + 1;
				else {
					flag = true;
					break;
				}
				flag = false;
			}
			if(flag) System.out.print("1 ");
			else System.out.print("0 ");
		}
	}
}

'알고리즘 > BAEKJOON' 카테고리의 다른 글

18429 근손실  (0) 2021.07.22
2839 설탕배달  (0) 2021.07.17
2417 정수 제곱근_Binary Search  (0) 2021.07.12
19598 최소 회의실 개수  (0) 2021.07.11
19638 센티와 마법의 뿅망치_Heap  (0) 2021.07.09