728x90
( 두 문제가 거의 비슷해서 같이 넣음. 각 숫자를 출력할때 사이가 공백인가 한줄띄기인가의 차이 ' ', '\n' )
// 220512
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static boolean binary_search(int n, int a[], int k) {
int start = 0, end = n - 1, mid = 0;
while (start <= end) {
mid = (start + end) / 2;
if (a[mid] == k)
return true;
if (a[mid] > k)
end = mid - 1;
else
start = mid + 1;
}
return false;
}
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int card[] = new int[n], i;
StringTokenizer st = new StringTokenizer(br.readLine());
for (i = 0; i < n; ++i)
card[i] = Integer.parseInt(st.nextToken());
Arrays.sort(card);
int m = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine());
StringBuilder sb = new StringBuilder();
for (i = 0; i < m; ++i)
sb.append(binary_search(n, card, Integer.parseInt(st.nextToken()))
? "1\n"
: "0\n"); // "1 ", "0 "
br.close();
System.out.println(sb.toString());
}
}
반응형
'코딩 문제 풀기 ( Algorithm problem solving ) > 백준 온라인 저지 ( BOJ )' 카테고리의 다른 글
[백준(Baekjoon)][자바(java)] 1654 : 랜선 자르기 / 이분 탐색 (0) | 2020.09.08 |
---|---|
[백준(Baekjoon)][자바(java)] 10816 : 숫자 카드 2 / 이분 탐색 (0) | 2020.09.08 |
[백준(Baekjoon)][자바(java)] 2261 : 가장 가까운 두 점 / 분할 정복 (0) | 2020.08.28 |
[백준(Baekjoon)][자바(java)] 6549 : 히스토그램에서 가장 큰 직사각형 / 분할 정복 (0) | 2020.08.28 |
[백준(Baekjoon)][자바(java)] 2749 : 피보나치 수 3 / 분할 정복 (0) | 2020.08.26 |