๐จ ๋ฌธ์
๋ฌธ์ ๋งํฌ: https://www.acmicpc.net/problem/1920
- ์๊ณ ๋ฆฌ์ฆ ๋ถ๋ฅ: ์ด๋ถ ํ์
- ๋์ด๋: Silver 4
๐ฌ ํ์ด
N๊ฐ์ ์๋ค์ ๋ฐฐ์ด์ ๋ด๊ณ , ์ ๋ ฌํ์ฌ ์ด๋ถํ์ ์ค์
<์ํ์ฐฉ์ค ์๋ฆฌ์ฆ>
- ์ฒ์์๋ N๊ฐ์ ์๋ค์ ๋ฒกํฐv์ ๋ด๊ณ , ๋จ์ํ ์ ํํ์์ผ๋ก ํ๋ค๊ฐ ์๊ฐ์ด๊ณผ ๋ฌ์๋ค. ๐๐ป ํ๋ฆฐ ์ฝ๋ ํ์ธ
- ๊ทธ๋์ ์ด๋ถํ์์ผ๋ก ํ๋๋ฐ๋, ์ด๋ถํ์ ํจ์ ํ๋ผ๋ฏธํฐ๋ก ๋ฒกํฐ ์ ์ฒด๋ฅผ ๋๊ธฐ๋๊น ๋ ์๊ฐ์ด๊ณผ๊ฐ ๋ด๋ค. ๐๐ป ํ๋ฆฐ ์ฝ๋ ํ์ธ
- ๊ทธ๋์ ๋ฒกํฐ ํฌ๊ธฐ๋ฅผ ๋์ ์ผ๋ก ํ์ง ์๊ณ ์ ์ญ์ผ๋ก ๋บ ๋ค์ v(100001)์ ํ ๋นํ๋ค. ์ด๋ sort(v.begin(), v.end())๊ฐ ์๋๋ผ i=0๋ถํฐ i=N-1๊น์ง๋ง ๋ถ๋ถ์ ๋ ฌ์ ํด์ผ ํ๋๋ฐ, ํ ์ค ๋ชฐ๋ผ์ ํ๋ ธ๋ค. (sort(v, v+N)์ ์๋๋๋ผ.) ๐๐ป ํ๋ฆฐ ์ฝ๋ ํ์ธ
- ๊ทธ๋์ ์ต์ข ์ ์ผ๋ก intํ์ ์ ์ญ ๋ฐฐ์ด arr์ ๋ด๋ ๊ฑธ๋ก ๋ฐ๊พธ๊ณ , sort(arr, arr+N) ํด์ค์ ํด๊ฒฐํ๋ค.
๐ฉ๐ป ์ฝ๋
C++
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
using namespace std;
int N, M;
int arr[100001];
int binarySearch(int target) {
int st = 0;
int en = N - 1;
int mid;
while (st <= en) { // start์ end๊ฐ ์ญ์ ๋๋ฉด target์ด ์กด์ฌํ์ง ์์์ ์๋ฏธํ๋ค.
mid = (st + en) / 2;
if (target == arr[mid]) return 1;
else {
if (target < arr[mid]) en = mid - 1;
else st = mid + 1;
}
}
return 0;
}
int main(void) {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
//freopen("input.txt", "rt", stdin);
cin >> N;
for (int i = 0; i < N; i++) {
cin >> arr[i];
}
sort(arr, arr + N); // ์ ๋ ฌ
cin >> M;
int num;
while (M--) {
cin >> num;
cout << binarySearch(num) << '\n';
}
return 0;
}
'Coding Test > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] ๋ฐฑ์ค #3985. ๋กค ์ผ์ดํฌ (0) | 2022.02.19 |
---|---|
[BOJ] ๋ฐฑ์ค #1543. ๋ฌธ์ ๊ฒ์ (0) | 2022.02.19 |
[BOJ] ๋ฐฑ์ค #1431. ์๋ฆฌ์ผ ๋ฒํธ (C++) (0) | 2022.02.16 |
[BOJ] ๋ฐฑ์ค #1026. ๋ณด๋ฌผ (C++) (0) | 2022.02.16 |
[BOJ] ๋ฐฑ์ค #1309. ๋๋ฌผ์ (C++) (0) | 2022.02.13 |