BOJ

백준 10815 - 숫자 카드

yanJuicy 2019. 9. 22. 17:28
반응형

문제

 

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

 

10815번: 숫자 카드

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이가 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 두 숫자 카드에 같은 수가 적혀있는 경우는 없다. 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 가지고 있는 숫자 카드인지 아닌지를 구해야 할 M개의 정수가 주어지며, 이

www.acmicpc.net

 

 

풀이

 

이분 탐색을 이용해서 숫자 카드가 존재하는지 알아본다. 이분 탐색을 하기 위해서 숫자 카드의 배열 A를 정렬을 한다. 상근이가 가지고 있는 숫자 카드가 A 배열에 있는지 이분 탐색을 통해 확인한 후 0 또는 1을 출력한다.

 

 

코드

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <algorithm>
 
using namespace std;
 
int N, M;
int A[500000];
 
int main()
{
    cin.tie(0);
    ios::sync_with_stdio(0);
 
    cin >> N;
    for (int i=0; i<N; i++cin >> A[i];
    sort(A, A+N);
 
    cin >> M;
    int num;
    for (int i=0; i<M; i++)
    { 
        cin >> num;
        if (binary_search(A, A+N, num)) cout << 1 << ' ';
        else cout << 0 << ' ';
    }
    
    return 0;
}
 
cs
반응형

'BOJ' 카테고리의 다른 글

백준 2304 - 창고 다각형  (0) 2019.09.29
백준 7576 - 토마토  (0) 2019.09.23
백준 2146 - 다리 만들기  (1) 2019.09.21
백준 2011 - 암호코드  (0) 2019.09.14
백준 4963 - 섬의 개수  (0) 2019.09.02