쉬운 정렬문제이다. 그런데 문제에서 중복경우를 제외하라는 말이 없었지만 임의로 제외해 보았다가 틀렸다. 그리고 다른 분의 풀이보다 시간과 메모리 사용량 둘다 뒤떨어졌다. 참고해 보겠다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void input_creature(vector<int> &creature_A, vector<int> &creature_B)
{
int A, B;
int i, size;
cin >> A >> B;
for (i = 0; i < A; i++)
{
cin >> size;
creature_A.push_back(size);
}
for (i = 0; i < B; i++)
{
cin >> size;
creature_B.push_back(size);
}
return;
}
int answer(vector<int>& creature_A, vector<int>& creature_B)
{
int ans = 0;
int i, j;
sort(creature_A.begin(), creature_A.end());
sort(creature_B.begin(), creature_B.end());
//중복의 경우 제외?
for (i = 0; i < creature_A.size(); i++)
{
//if (i < creature_A.size() - 2 && creature_A[i] == creature_A[i + 1])
//{
// i++;
// continue;
//}
for (j = 0; j < creature_B.size(); j++)
{
if (creature_A[i] > creature_B[j])
{
ans++;
}
else
{
break;
}
}
}
return ans;
}
void find_answer()
{
int T, i;
cin >> T;
for (i = 0; i < T; i++)
{
vector<int> creature_A;
vector<int> creature_B;
input_creature(creature_A, creature_B);
cout << answer(creature_A, creature_B) << "\n";
}
return;
}
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
find_answer();
return 0;
}