입력 : 첫째 줄 - 테스트케이스
둘째 줄 - A의 수 N과 B의 수 M (1 ≤ N, M ≤ 20,000)
셋째 줄 - A의 크기 배열
넷째 줄 - B의 크기 배열
테스트케이스만큼 둘째 줄 ~ 넷째 줄 반복
출력 : A의 크기가 B보다 큰 쌍의 개수
O(N)
투 포인터 알고리즘
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int i = 0; i < T; i++) {
int N = sc.nextInt();
int[] A = new int[N];
int M = sc.nextInt();
int[] B = new int[M];
for (int j = 0; j < N; j++) {
A[j] = sc.nextInt();
}
for (int k = 0; k < M; k++) {
B[k] = sc.nextInt();
}
Arrays.sort(A);
Arrays.sort(B);
int result = 0;
int indexB = 0;
for (int l = 0; l < N; l++) {
while (indexB < M && B[indexB] < A[l]) {
indexB++;
}
result += indexB;
}
System.out.println(result);
}
sc.close();
}
}