Problem solving/BOJ

[BOJ] 1920. 수 찾기 (C++)

2023. 8. 11. 19:18

문제

N개의 정수 배열이 주어지고, M개의 수들이 주어진다.

이 수들이 N개 안에 존재하면 1, 존재하지 않으면 0출력

생각할 것

unordered_map은 탐색에 O(1)의 시간복잡도가 소요되므로 unoredered_map으로 찾아보려한다.

배열 인덱스를 사용함과 다르게 key값으로 정수 범위를 넣어도 된다.

코드

#include <iostream>
#include <unordered_map>

using namespace std;

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

    int N, M, n;
    cin >> N;
    unordered_map<int, bool> m;
    for (int i = 0; i < N; i++) {
        cin >> n;
        m[n] = true;
    }

    cin >> M;
    for (int i = 0; i < M; i++) {
        cin >> n;
        cout << m[n] << "\\n";
    }

    return 0;
}
반응형