coding_test/BAEKJOON

백준 10815번 C++ 풀이

CodeJin 2022. 1. 5. 19:08

https://www.acmicpc.net/problem/10815

 

10815번: 숫자 카드

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,

www.acmicpc.net

숫자 배열을 입력받고, 그 다음 받은 숫자들이 들어있는지 판단하는 문제. 이진탐색으로 접근해야 한다. 이중 for문으로 접근하게되면 O(n^2)가 되고, 이는 시간안에 통과하지 못한다

 

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main () {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    
    int len, temp;
    vector<int> v;
    cin >> len;
    
    while (len--) {
        cin >> temp;
        v.push_back(temp);
    }
    sort(v.begin(), v.end());
    cin >> len;
    while (len--) {
        cin >> temp;
        cout << binary_search(v.begin(), v.end(), temp) << ' ';
    }
    
}