본문 바로가기

PS_Baekjoon

[백준 C++] 10815번 : 숫자 카드

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

 

10815번: 숫자 카드

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

www.acmicpc.net

풀이 : 

- set에 넣고 수를 받을 때마다 s.count를 출력해준다

    s.find는 수가 존재하면 그 수를 가리키는 반복자를 반환하고, s.count는 존재하면 1, 아니면 0을 반환한다

 

코드 : 

#include <iostream>
#include <set>

using namespace std;

int main(void) {
    int n, m, num;
    set<int> s;

    scanf("%d", &n);
    while (n--){
        scanf("%d", &num);
        s.insert(num);
    }
    scanf("%d", &m);
    while(m--){
        scanf("%d", &num);
        printf("%lu ", s.count(num));
    }
    printf("\n");
}

- 시간 초과 주의!!

    cin, cout 말고 scanf, printf 쓰는 습관 들여야겠다..