풀이방법 :
- 이분탐색 문제이다
- 먼저 배열을 입력받고 sort를 사용하여 오름차순으로 정렬한다
- 구현한 이분탐색코드 binary_search()함수를 활용해서 배열에서 해당된 값을 찾는다
- binary_search()함수의 반환값을 출력한다
- 해당 값이 존재하면 1, 존재하지 않으면 0
나의 코드 :
#include <iostream>
#include <algorithm>
using namespace std;
int a[100005];
int n;
int binarysearch(int target) {
int st = 0;
int en = n - 1;
while (st <= en) {
int mid = (st + en) / 2;
if (a[mid] < target)
st = mid + 1;
else if (a[mid] > target)
en = mid - 1;
else
return 1;
}
return 0; // st>en일경우 탈출
}
int main(void) {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
for (int i = 0; i < n; i++) cin >> a[i];
sort(a, a + n);
int m;
cin >> m;
while (m--) {
int t;
cin >> t;
cout << binary_search(a, a + n, t) << '\n';
}
}
https://www.acmicpc.net/problem/1920
'Koala - 10기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준/Python] 1184 귀농 (0) | 2023.04.02 |
---|---|
[백준/Python] #14627 파닭파닭 (0) | 2023.04.01 |
[1654/python] 랜선 짜르기 (0) | 2023.04.01 |
[백준/Python] 17179 : 케이크 자르기 (0) | 2023.04.01 |
[백준/C++] 2343 : 기타 레슨 (0) | 2023.03.30 |