본문 바로가기

백준

10815 숫자 카드

처음 써 본 lower_bound 문제..

이 함수 return 값이 배열의 위치라길래 아 그럼 인덱스인가? 해서 int tmp에 인덱스가 들어있는 줄 알았다. 알고보니 iterater였다. 어색한 iterater.. 그래서 앞에 * 붙여서 값을 들고왔다. 다음으로 값이 없을 수 있으므로 input과 같은지 확인했음

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int main() {
    int n;
    scanf("%d", &n);
    vector <int> v(n);
    
    for(int i = 0; i < n; i++)
        scanf("%d", &v[i]);
        
    sort(v.begin(), v.end());
    
    int m;
    scanf("%d", &m);
    
    for(int i = 0; i < m; i++){
        int input;
        scanf("%d", &input);
        int tmp = *lower_bound(v.begin(), v.end(), input);
        if(tmp == input)
            printf("1 ");
        else
            printf("0 ");
    }
    
    return 0;
}

 

'백준' 카테고리의 다른 글

16510 Predictable Queue  (0) 2019.11.25
10816 숫자 카드 2  (0) 2019.11.25
15885 고장난 시계  (0) 2019.11.23
1252 이진수 덧셈  (0) 2019.11.23
1790 수 이어 쓰기2 (미완)  (0) 2019.11.20