문제접근![](data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==)
•
upper_bound를 통해 찾고자 하는 원소의 가장 마지막 주소
•
lower_bound를 통해 찾고자 하는 원소의 가장 첫 주소
•
차이를 통해 개수를 구함
놓쳤던 부분![](data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==)
•
입출력 딜레이 셋팅을 안 해서 시간초과
•
upper_bound, lower_bound
코드![](data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==)
5936 KB
304 ms
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(void)
{
int n,m;
int tmp;
vector<int> n_arr;
vector<int> m_arr;
cin >> n;
n_arr.resize(n);
for (int i = 0; i < n; i++)
{
cin >> tmp;
n_arr[i] = tmp;
}
cin >> m;
m_arr.resize(m);
sort(n_arr.begin(), n_arr.end());
for (int i = 0; i < m; i++)
{
cin >> tmp;
cout << upper_bound(n_arr.begin(), n_arr.end(), tmp) - lower_bound(n_arr.begin(), n_arr.end(), tmp) << " ";
}
return (0);
}
C++
복사