📌 문제 링크
https://www.acmicpc.net/problem/1920
📄 문제 설명
🧠 문제 접근
이번 문제는 이진 탐색을 사용하여 풀었다.
먼저 A[N] 배열을 탐색하기 좋게 정렬을 시킨다.
그 다음 이진 탐색을 위한 함수를 별도로 분리하여 호출한다.
✅ 내가 제출한 코드
import java.io.*;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
String[] s1 = br.readLine().split(" ");
int[] A = new int[N];
for(int i = 0; i < N; i++) {
A[i] = Integer.parseInt(s1[i]);
}
Arrays.sort(A);
int M = Integer.parseInt(br.readLine());
String[] s2 = br.readLine().split(" ");
StringBuilder sb = new StringBuilder();
for(int i = 0; i < M; i++) {
int b = Integer.parseInt(s2[i]);
sb.append(binarySearch2(b,0, N-1, A) + "\n");
}
System.out.println(sb);
}
public static int binarySearch2(int key, int low, int high, int[] A) {
int mid;
while(low <= high) {
mid = (low + high) / 2;
if(key == A[mid]) {
return 1;
} else if(key < A[mid]) {
high = mid - 1;
} else {
low = mid + 1;
}
}
return 0; // 탐색 실패
}
}
'🥟 Java > 코딩테스트' 카테고리의 다른 글
[백준 10798] 세로 읽기 - Java (0) | 2025.06.09 |
---|---|
[백준 2417] 정수 제곱근 - Java (0) | 2025.06.08 |
[백준 1904] 01타일 - Java (0) | 2025.06.06 |
[백준 2747] 피보나치 수 - Java (0) | 2025.06.05 |
[백준 10815] 숫자 카드 - Java (0) | 2025.06.04 |