1920번: 수 찾기
첫째 줄에 자연수 N(1≤N≤100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1≤M≤100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안��
www.acmicpc.net
간단한 이분탐색 문제였다.
입력받은 숫자들을 vector에 저장하고, 정렬한 다음 binary_search() 함수를 통해 찾고자 하는 숫자의 존재 여부를 파악하고 반환되는 bool 값을 출력해주면 원하는 결과를 얻을 수 있다.
이 문제처럼 입출력이 많이 발생하는 문제를 풀 때는 ios_base::sync_with_stdio(0); 과 cin.tie(NULL); 을 꼭 추가해주는 것이 좋다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(void)
{
ios_base::sync_with_stdio(0);
cin.tie(NULL);
vector<long long> arr;
int N;
cin >> N;
for (int i = 0; i < N; i++)
{
int num;
cin >> num;
arr.push_back(num);
}
sort(arr.begin(), arr.end());
int M;
cin >> M;
for (int i = 0; i < M; i++)
{
int num;
cin >> num;
cout << binary_search(arr.begin(), arr.end(), num) << '\n';
}
return 0;
}
알고리즘 200일 프로젝트 - 45 day
'알고리즘 > BOJ' 카테고리의 다른 글
백준 1654번: 랜선 자르기 (0) | 2020.05.20 |
---|---|
백준 2805번: 나무 자르기 (0) | 2020.05.20 |
백준 2869번: 달팽이는 올라가고 싶다 (0) | 2020.05.19 |
백준 10816번: 숫자 카드 2 (0) | 2020.05.19 |
백준 10815번: 숫자 카드 (0) | 2020.05.19 |