https://www.acmicpc.net/problem/1920
1920๋ฒ: ์ ์ฐพ๊ธฐ
์ฒซ์งธ ์ค์ ์์ฐ์ N(1 ≤ N ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ N๊ฐ์ ์ ์ A[1], A[2], …, A[N]์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ M(1 ≤ M ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ M๊ฐ์ ์๋ค์ด ์ฃผ์ด์ง๋๋ฐ, ์ด ์๋ค
www.acmicpc.net
์ค๋ต๋ ธํธ(ํธ๋ ๋์ ์ฌ๊ณ ๊ณผ์ ๋ฐ ๊ฐ์ ์ )
์ด๋ฒ ๋ฌธ์ ๋ ์์ ์ ์ ๋ ฌ๋ก ๋์ถฉ ๋ผ์ฐ๋ ค๋ค๊ฐ ๋ชปํ๊ณ ๋๊ธด ๋ฌธ์ ๋ค. ๋๋ฌด ์์ ์ ํ๋ ค์ ์ค๋ต ์ฝ๋๋ฅผ ์ฌ๋ ค๋ ๊ทธ๋์ ์ฌ๊ณ ๊ณผ์ ์ด ์๊ฐ๋์ง ์๋๋ค. ์ด๋ถํ์์ ๋ํ ๊ฐ๋ ์ ์ต๋ํ๊ณ ๋์ ํ๊ฒ ๋ ๋ฌธ์ ์ด๋ค. ๊ธฐ์ค์ ์ ์ ํ๊ณ , L, R์ ์์ง์ด๋ฉด์ ๋ฒ์๋ฅผ (1/2)^n์ผ๋ก ์ขํ๊ฐ๋ ๊ฐ๋ ์ธ๋ฐ, ์ฝ๋๊ฐ ์์ง ์ด์ํด์ ๋น์ทํ ์ ํ์ ๋ฌธ์ ๋ฅผ ์ข ๋ ํ์ด๋ด์ผ๊ฒ ๋ค.
์ ๋ต์ฝ๋
import java.io.FileInputStream;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
class Main{
public static int binarySearch(int[] arr, int target){
int l=0; int r = arr.length-1;
while (l<=r){
int m = (l+r)/2;
if(arr[m]<target) l = m+1;
else if(arr[m]>target) r = m-1;
else return 1;
}
return 0;
}
public static void main(String[] args) throws Exception{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arrN = new int[n];
for(int i=0; i<n;i++){
arrN[i] = sc.nextInt();
}
int m = sc.nextInt();
int[] arrM = new int[m];
for(int i=0; i<m;i++){
arrM[i] = sc.nextInt();
}
Arrays.sort(arrN);
for(int X: arrM){
System.out.println(binarySearch(arrN, X));
}
sc.close();
}
}
๋์์ด ๋๋ค๋ฉด ๋๊ธ์ด๋ ๊ณต๊ฐ ๋ฒํผ ํ ๋ฒ์ฉ ๋๋ฅด๊ณ ๊ฐ์ฃผ์ธ์! ๋ก๊ทธ์ธ ์ํด๋ ๋ฉ๋๋ค ^_^
'OJ๐ผ > ์ค๋ต๋ ธํธ๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][JAVA] 10816: ์ซ์ ์นด๋ 2 (0) | 2024.01.08 |
---|---|
[BOJ][JAVA] 2295: ์ธ ์ ์ฐพ๊ธฐ (0) | 2024.01.07 |
[BOJ][JAVA] 3085: ์ฌํ ๊ฒ์ (0) | 2024.01.06 |
[BOJ][JAVA] 10431: ์ค์ธ์ฐ๊ธฐ (0) | 2024.01.04 |
[SWEA][JAVA] 1954. ๋ฌํฝ์ด ์ซ์ (0) | 2023.11.15 |