728x90
C++ 이분탐색
쉬운 이분탐색 응용없이 그냥 이분탐색만 하면 되는 문제
이건..실버4이기엔 쉬운 문제인 것 같다.
접근방법
상근이가 갖고 있는 숫자카드는 배열로 받아서 정렬해주고
주어지는 정수 M은 바로 받아서 이분탐색하는 것 끝
오답노트
내가 코드를 잘 못짜서 그런건지는 모르겠지만 일단 기본 코드는 시간초과 났었고
sync_with_stdio 해주고 cin tie해주니까 통과됐다.
소스코드
#include <iostream>
#include <algorithm>
using namespace std;
int sg[500000];
int n;
int isinsg(int num){
int s = 0;
int e = n-1;
int mid;
while(s <= e){
mid = (s+e)/2;
if(sg[mid] == num){
return 1;
}else if(sg[mid] > num){
e = mid-1;
}else{
s = mid+1;
}
}
return 0;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin >> n;
for(int i = 0 ; i < n ; i++){
cin >> sg[i];
}
sort(sg, sg+n);
int m, num;
cin >> m;
for(int i = 0 ; i < m ; i++){
cin >> num;
cout << isinsg(num) << " ";
}
return 0;
}
728x90
'알고리즘 문제풀이' 카테고리의 다른 글
[백준 2512] 알고리즘 61일차 : 예산 (0) | 2021.01.08 |
---|---|
[백준 1764] 알고리즘 60일차 : 듣보잡 (0) | 2021.01.07 |
[백준 2110] 알고리즘 58일차 : 공유기 설치 (0) | 2021.01.05 |
[백준 1934]알고리즘 57일차 : 최소공배수 (0) | 2021.01.04 |
[백준 2805] 알고리즘 56일차 : 나무 자르기 (0) | 2020.12.30 |