π»
[λ°±μ€] μ΄λΆ νμ - 1920. μ μ°ΎκΈ° λ³Έλ¬Έ
[λ°±μ€] μ΄λΆ νμ - 1920. μ μ°ΎκΈ°
λν¨λ 2020. 2. 4. 23:03λ¬Έμ
Nκ°μ μ μ A[1], A[2], …, A[N]μ΄ μ£Όμ΄μ Έ μμ λ, μ΄ μμ XλΌλ μ μκ° μ‘΄μ¬νλμ§ μμλ΄λ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μ μμ°μ N(1≤N≤100,000)μ΄ μ£Όμ΄μ§λ€. λ€μ μ€μλ Nκ°μ μ μ A[1], A[2], …, A[N]μ΄ μ£Όμ΄μ§λ€. λ€μ μ€μλ M(1≤M≤100,000)μ΄ μ£Όμ΄μ§λ€. λ€μ μ€μλ Mκ°μ μλ€μ΄ μ£Όμ΄μ§λλ°, μ΄ μλ€μ΄ Aμμ μ‘΄μ¬νλμ§ μμλ΄λ©΄ λλ€. λͺ¨λ μ μλ€μ λ²μλ int λ‘ νλ€.
μΆλ ₯
Mκ°μ μ€μ λ΅μ μΆλ ₯νλ€. μ‘΄μ¬νλ©΄ 1μ, μ‘΄μ¬νμ§ μμΌλ©΄ 0μ μΆλ ₯νλ€.
μμ μ λ ₯1
5
4 1 5 2 3
5
1 3 7 9 5
μμ μΆλ ₯1
1
1
0
0
1
μκ°
μ²μμλ λ¨μνκ² νλμ© μ λ ₯λ°μ μλ₯Ό λ°°μ΄μμ μλμ§ μ²΄ν¬ν΄μ μμΌλ©΄ trueλ₯Ό 리ν΄νλ ν¨μλ₯Ό μμ±ν΄μ κ°λ¨νκ² νμλ€. νμ§λ§ μ΄λ κ² νλ©΄ μμ λ΅μμ λμ¬μ§λΌλ μκ° μ΄κ³Όκ° λμ μ€ν¨νκ² λλ€.
μ΄λΆ νμ(νΉμ μ΄μ§νμ)μ μ΄μ©νλ©΄ μκ° λ³΅μ‘λλ₯Ό O(logN)λ‘ μ€μΌ μ μλ€. λ¨, μ¬κΈ°μ μ£Όμ ν μ μ μ΄μ§ νμμ μ¬μ©νλ κ²½μ° μ λ ¬μ΄ λμ΄ μμ΄μΌνλ€λ κ²!
μμ±ν μ½λ
#include <iostream>
#include <algorithm>
using namespace std;
#define MAX 100000
int arr[MAX];
int n,m;
bool check = false;
void BinarySearch(int key){
int first = 0;
int last = n-1;
int mid = 0;
while(first <= last){
mid = (first+last)/2;
if(arr[mid] == key){
check = true;
return;
}else if(arr[mid] > key){
last = mid -1;
}else{
first = mid +1;
}
}
check = false;
return;
}
int main(int argc, const char * argv[]) {
// insert code here...
ios_base::sync_with_stdio(false);
cin.tie(0);
int num;
cin >> n;
for(int i=0; i<n; i++){
cin >> arr[i];
}
sort(arr, arr+n);
cin >> m;
for(int i=0; i<m; i++){
cin >> num;
BinarySearch(num);
if(check){
cout << 1 << "\n";
}else{
cout << 0 << "\n";
}
}
return 0;
}
'μκ³ λ¦¬μ¦ > λ¬Έμ νμ΄ Baekjoon' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 그리λ - 11399. ATM (0) | 2020.02.12 |
---|---|
[λ°±μ€] λμ κ³νλ² - 1904. 01νμΌ (0) | 2020.02.12 |
[λ°±μ€] λ°±νΈλνΉ - 6603. λ‘λ (0) | 2020.02.03 |
[λ°±μ€] μ¬κ· - 2447. λ³ μ°κΈ° - 10 (0) | 2020.02.02 |
[λ°±μ€] λΈλ£¨νΈν¬μ€ - 2231. λΆν΄ν© (0) | 2020.02.01 |