반응형
C++ (400ms)
- 입력받은 두 배열을 정렬 한 뒤,
- 2중 반복문을 돌리며 arr 배열의 원소가 brr 배열의 원소보다 작거나 같기 전까지 cnt를 하나씩 올린다.
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
cin.tie(0)->sync_with_stdio(0);
int T;
cin >> T;
while (T--)
{
int A, B, i, cnt = 0;
cin >> A >> B;
int arr[A], brr[B];
for (i = 0; i < A; i++)
cin >> arr[i];
for (i = 0; i < B; i++)
cin >> brr[i];
sort(arr, arr+A);
sort(brr, brr+B);
for (int n : arr)
{
if (n == 1) continue;
for (int k : brr)
{
if (n <= k)
break;
cnt++;
}
}
cout << cnt << "\\n";
}
}
C++ (32ms)
- 입력받은 두 배열을 정렬 한 뒤,
- arr와 brr를 동시에 한 반복문으로 돌리는데,
- arr[i] brr[j]를 비교하며 arr[i]가 크면 i 인덱스부터 마지막 인덱스까지의 개수를 cnt에 추가한다.
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
cin.tie(0)->sync_with_stdio(0);
int T;
cin >> T;
while (T--)
{
int A, B, i, j, cnt = 0;
cin >> A >> B;
int arr[A], brr[B];
for (i = 0; i < A; i++)
cin >> arr[i];
for (i = 0; i < B; i++)
cin >> brr[i];
sort(arr, arr+A);
sort(brr, brr+B);
i = 0, j = 0;
while (i < A && j < B)
if (arr[i] > brr[j])
cnt += A - i, j++;
else i++;
cout << cnt << "\\n";
}
}
반응형