https://www.acmicpc.net/problem/1920
1. binarySearch를 사용한 방법
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
int[] arr = new int[N];
st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(arr);
int M = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine());
for (int i = 0; i < M; i++) {
int cur = Integer.parseInt(st.nextToken());
if (Arrays.binarySearch(arr, cur) >= 0) {
System.out.println(1);
} else {
System.out.println(0);
}
}
}
}

2. 이진탐색 직접 구현
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
int[] arr = new int[N];
st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(arr);
int M = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine());
for (int i = 0; i < M; i++) {
int cur = Integer.parseInt(st.nextToken());
System.out.println(bs(arr, cur));
}
}
public static int bs(int[] arr, int key) {
int lo = 0;
int hi = arr.length -1;
while(lo <= hi) {
int mid = (lo+hi) / 2;
if(key < arr[mid]) {
hi = mid-1;
}else if(key > arr[mid]) {
lo = mid + 1;
} else {
return 1;
}
}
return 0;
}
}'코딩테스트 > JAVA' 카테고리의 다른 글
| [백준 JAVA] 2805번: 나무 자르기 (0) | 2024.09.09 |
|---|---|
| [백준 JAVA]기 1654번: 랜선 자르기 (0) | 2024.09.09 |
| [SWEA JAVA] 5643. [Professional] 키 순서 (4) | 2024.09.06 |
| [SWEA JAVA] 2477. [모의 SW 역량테스트] 차량 정비소 (1) | 2024.09.05 |
| [백준 JAVA] 1917번: 정육면체 전개도 (0) | 2024.09.05 |