(백준 알고리즘 문제풀이) 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