백준 1920번 수 찾기

< 백준 1920번 수 찾기 - 마포 코딩박 >

사용한 알고리즘: Set


 N개의 수를 주고, 다음 M번의 질문으로 각각 수가 입력되면  해당 수가 주어졌는지 체크하는 문제였습니다.

문제풀이는 다음과 같습니다.
(1) (코드: set<int> arr)
 N번의 입력으로 주어지는 수를 저장할 set을 만들어줍니다.

(2) (코드: 10~14)
 처음 N번의 입력으로 주어지는 수를 set에 저장합니다.

(3) (코드: 16~21)
 M번의 입력으로 주어지는 수가 set에 저장되어 있으면 1, 없으면 0 을 출력해줍니다.

STL 구조체 set 에대해 알고 계신다면 쉽게 해결할 수 있는 문제였습니다.

#include <bits/stdc++.h>
using namespace std;
int N, M;
set<int> arr;
int main(){ios_base::sync_with_stdio(false); cout.tie(NULL); cin.tie(NULL);
cin >> N;
for (int i = 0; i < N; ++i){
int num;
cin >> num;
arr.insert(num);
}
cin>>M;
for (int i = 0; i < M; ++i){
int num;
cin>>num;
if(arr.count(num)) cout << 1 << '\n';
else cout << 0 << '\n';
}
return 0;
}
view raw BOJ 1920.cpp hosted with ❤ by GitHub


댓글