알고리즘 문제/BOJ
10815번 숫자 카드
parkit
2018. 8. 28. 00:08
728x90
반응형
1920번 수 찾기와 똑같은 문제이다.
https://www.acmicpc.net/problem/10815
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | #include <iostream> #include <queue> #include <cstdio> #include <vector> #include <cstring> #include <string> #include <math.h> #include <algorithm> using namespace std; vector<int> v; vector<int> ans; int N = 0; int searchNumber(int left, int right, int search) { if (left > right) return 0; int middle = (left + right) / 2; if (v[middle] == search) return 1; else if (v[middle] < search) searchNumber(middle + 1, right, search); else searchNumber(left, middle - 1, search); } int main(void) { int input_num = 0, search_cnt = 0, search_num = 0; scanf("%d", &N); while (N--) { scanf("%d", &input_num); v.push_back(input_num); } sort(v.begin(), v.end()); // 이분 탐색은 반드시 정렬된 상태여야 한다. scanf("%d", &search_cnt); while (search_cnt--) { scanf("%d", &search_num); ans.push_back(searchNumber(0, v.size() - 1, search_num)); } for (int i = 0; i < ans.size(); i++) { printf("%d ", ans[i]); } return 0; } | cs |
728x90
반응형