반응형
출처: https://www.acmicpc.net/problem/10815
① 입력받은 N개의 숫자카드를 오름차순으로 정렬합니다.
② 정렬된 원소에서 이분탐색으로 존재 여부 판단.
#include <stdio.h>
#include <algorithm>
using namespace std;
int card[500001];
bool binarySerch(int left, int right, int target){
int mid = (left + right) / 2;
if (left > right)
return false;
if (card[mid] > target)
return binarySerch(left, mid - 1, target);
else if (card[mid] < target)
return binarySerch(mid + 1, right, target);
else
return true;
}
int main(void){
int N, M, target;
scanf("%d", &N);
for (int i = 0; i < N; i++)
scanf("%d", &card[i]);
sort(card, card + N);
scanf("%d", &M);
for (int i = 0; i < M; i++){
scanf("%d", &target);
if (binarySerch(0, N-1, target)) printf("1 ");
else printf("0 ");
}
}
반응형
'PS 문제 풀이 > Baekjoon' 카테고리의 다른 글
[BOJ] 백준 2822 점수 계산 (0) | 2021.02.25 |
---|---|
[BOJ] 백준 14225 부분수열의 합 (0) | 2021.02.25 |
[BOJ] 백준 1158 요세푸스 문제 (0) | 2021.02.25 |
[BOJ] 백준 2458 키 순서 (0) | 2021.02.25 |
[BOJ] 백준 1406 에디터 (0) | 2021.02.25 |
댓글