[백준] 3273 두 수의 합 - Java
이분 탐색을 활용해 빠르게 찾자
import java.util.*;
import java.io.*;
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());
int[] arr = new int[N+1];
StringTokenizer st = new StringTokenizer(br.readLine());
for(int i=1; i<N+1; i++){
arr[i] = Integer.parseInt(st.nextToken());
}
int X = Integer.parseInt(br.readLine());
Arrays.sort(arr, 1, N+1);
int ans = 0;
for(int i = 1; i<N; i++){
if(BinarySearch(arr, i + 1, N, X - arr[i])){
ans++;
}
}
System.out.println(ans);
}
static boolean BinarySearch(int[] arr, int L, int R, int target){
while(L <= R){
int mid = (L + R) / 2;
if(arr[mid] == target){
return true;
}
if(arr[mid] < target){
L = mid + 1;
}else{
R = mid - 1;
}
}
return false;
}
}
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 2512 예산 - Java (0) | 2022.05.05 |
---|---|
[백준] 1654 랜선 자르기 - Java (0) | 2022.05.05 |
[백준] 2110 공유기 설치 - Java (0) | 2022.05.04 |
[백준] 2805 나무 자르기 - Java (0) | 2022.05.04 |
[백준] 2470 두 용액 - Java (0) | 2022.05.04 |
댓글
이 글 공유하기
다른 글
-
[백준] 2512 예산 - Java
[백준] 2512 예산 - Java
2022.05.05 -
[백준] 1654 랜선 자르기 - Java
[백준] 1654 랜선 자르기 - Java
2022.05.05 -
[백준] 2110 공유기 설치 - Java
[백준] 2110 공유기 설치 - Java
2022.05.04 -
[백준] 2805 나무 자르기 - Java
[백준] 2805 나무 자르기 - Java
2022.05.04