정신과 시간의 방
작성일
2024. 8. 21. 22:06
작성자
risehyun
  • 문제

 

  • 풀이
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() 
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);

    int n = 0, value = 0;
    vector<int> v;

    cin >> n;

    for (int i = 0; i < n; i++) 
    {
        cin >> value;
        v.push_back(value);
    }

    // 이진 탐색에 들어가기 전에 먼저 벡터 안의 데이터를 sort 해준다.
    sort(v.begin(), v.end());
 
    cin >> n;

    // 이진 탐색 함수를 사용해 벡터 내부에 입력받은 값이 존재하는지 확인한다.
    for (int i = 0; i < n; i++)
    {
        cin >> value;
        cout << binary_search(v.begin(), v.end(), value) << ' ';
    }

}

 

  • 메모

이진 탐색을 사용해서 풀었지만 map으로도 풀 수 있는 문제다.
대신 이중for문을 사용하면 제한 시간이 초과되어 오답처리 되므로 주의해야 한다.