본문 바로가기
Problem solving/BOJ

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

by 겸 2023. 8. 11.

문제

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;
}
반응형

'Problem solving > BOJ' 카테고리의 다른 글

[BOJ] 2468. 안전 영역 (C++)  (0) 2023.08.23
[BOJ] 7785. 회사에 있는 사람 (C++)  (0) 2023.08.11
[BOJ] 2230. 수 고르기 (C++)  (0) 2023.08.11
[BOJ] 2493. 탑 (C++)  (0) 2023.08.11