DOTY
4) 백준 1920 - 수 찾기 본문
728x90
반응형
1920번: 수 찾기
첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들
www.acmicpc.net
이분탐색을 활용한 문제.
#include <bits/stdc++.h>
using namespace std;
int main(void) {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N;
int num[100001] = {0, };
cin >> N;
for(int i = 0; i < N; i++) {
cin >> num[i];
}
sort(num, num+N);
int M, find_num;
cin >> M;
for(int i = 0; i < M; i++) {
cin >> find_num;
int start = 0;
int end = N-1;
int middle = (start+end) / 2;
while(start < end) {
if(num[middle] == find_num) {
cout << "1\n";
break;
}
else if(num[middle] > find_num) {
end = middle-1;
}
else {
start = middle+1;
}
middle = (start+end) / 2;
}
if(start >= end) {
if(num[middle] == find_num) {
cout << "1\n";
}
else {
cout << "0\n";
}
}
}
return 0;
}
처음에 한번 틀렸길래 버퍼 해제와 동기화를 추가해줬다. (cin.tie, cout.tie, sync_with_stdio)
이분 탐색 연습하기에 좋은 문제.
728x90
반응형
'Algorithm > ect' 카테고리의 다른 글
백준) 1806 - 부분합 (0) | 2023.04.26 |
---|---|
프로그래머스) Lv.1 - 성격 유형 검사하기 (0) | 2023.03.20 |
프로그래머스) Lv.3 - 기지국 설치 (0) | 2023.03.18 |
프로그래머스) Lv 1 - 최소직사각형 (0) | 2023.03.07 |
프로그래머스) Lv.2 - 탑 (0) | 2020.10.05 |
Comments