(백준 알고리즘 문제풀이) 10815번 숫자 카드
by 줌코딩
문제
어떻게 접근할 것인가?
- 카드가 겹치지 않으므로 binary tree로 구현되어있는 set의 함수를 사용해도 되고
 - 찾는 시간을 줄이기 위해 이분탐색을 활용해도 된다.
 - 근데 확실히 이분탐색을 이용했을 때 빠르다.
 
set 활용 코드
#include <cstdio>
#include <set>
using namespace std;
int main(){
    long long n, m, x;
    set<long long> s;
    scanf("%lld", &n);
    while(n--){
        scanf("%lld", &x);        
        s.insert(x);
    }
    scanf("%lld", &m);
    while(m--){
        scanf("%lld", &x);
        if(s.find(x) != s.end())printf("1 ");
        else printf("0 ");
    }
}
이분탐색 활용 코드
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
    long long n, m, x;
    vector<long long> v;
    scanf("%lld", &n);
    while(n--){
        scanf("%lld", &x);        
        v.push_back(x);
    }
    sort(v.begin(), v.end());
    scanf("%lld", &m);
    while(m--){
        scanf("%lld", &x);
        if(binary_search(v.begin(), v.end(), x))printf("1 ");
        else printf("0 ");
    }
}
    이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
  
Subscribe via RSS