문제설명

 

소스코드

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
    ios_base::sync_with_stdio(false); //표준 스트림 동기화 해제
    cin.tie(nullptr); //입출력 연결 끊기
    int N, M;
    vector<int> vec;
    cin >> N;
    for (int i = 0; i < N; ++i)
    {
        int input;
        cin >> input;
        vec.push_back(input);
    }
    sort(vec.begin(), vec.end());
    cin >> M;
    for (int i = 0; i < M; ++i)
    {
        int input;
        cin >> input;
        cout << binary_search(vec.begin(), vec.end(), input) << ' ';
    }
}

 

설명

  • 이중 for문을 사용하면 시간초과가 된다.
  • 이진 탐색으로 탐색하기 위해 algorithm 라이브러리의 sort() 함수로 정렬을 해준다.
  • algorithm 라이브러리의 binary_search() 함수로 정렬된 벡터에서 입력받은 값이 있는지 확인한다.
  • 표준 스트림 동기화 해제, 입출력 연결 끊기, endl 대신 '\n'사용 -> 시간초과 방지