본문 바로가기
IT/BOJ

백준(BOJ) 10815 숫자 카드 *

by 빨강자몽 2018. 6. 1.

간단한 이분 탐색입니다. 

1920번 수 찾기와 동일한 문제입니다.


#include <iostream> #include <algorithm> #include <vector> #include <string.h> #include <math.h> #include <queue> #include <set> #include <utility> #include <functional> #define MAX 40005 #define MOD 1000000007 #pragma warning(disable:4996) using namespace std; int n, m, tmp, lft, mid, rht; int map[500005]; int finder(int dest) { while (1) { if (map[mid] == dest) return 1; else if (map[mid] < dest) { lft = mid + 1; mid = (lft + rht) / 2; } else { rht = mid - 1; mid = (lft + rht) / 2; } if (lft>rht) return 0; } } int main() { scanf("%d", &n); for(int i = 0; i < n; i++) scanf("%d", &map[i]); scanf("%d", &m); sort(map, map + n); for (int i = 0; i < m; i++) { lft = 0, rht = n - 1; mid = (lft+rht)/2; scanf("%d", &tmp); int ans=finder(tmp); if (ans) printf("1 "); else printf("0 "); } return 0; }



'IT > BOJ' 카테고리의 다른 글

백준(BOJ) 2336 굉장한 학생 ***  (0) 2018.06.01
백준(BOJ) 1920 수찾기 *  (0) 2018.06.01
백준(BOJ) 7453 합이 0인 네 정수 *  (0) 2018.06.01
백준(BOJ) 1931 회의실배정 **  (0) 2018.06.01
백준(BOJ) 1931 로프 *  (0) 2018.06.01