https://www.acmicpc.net/problem/7795
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(br.readLine());
for (int t = 0; t < T; t++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int[] A = new int[N];
int[] B = new int[M];
st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
A[i] = Integer.parseInt(st.nextToken());
}
st = new StringTokenizer(br.readLine());
for (int i = 0; i < M; i++) {
B[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(A);
Arrays.sort(B);
int count = 0;
for (int i = 0; i < N; i++) {
int idxB = 0; // 각 테스트 케이스마다 초기화
while (idxB < M && B[idxB] < A[i]) {
idxB++;
}
count += idxB;
}
bw.write(count + "\n");
}
br.close();
bw.flush();
bw.close();
}
}
A와 B를 정렬하고 조건에 맞는 (A보다 B가 큰 쌍을) 횟수를 브루트포스로 찾아냈다. N과M이 각각 20000이 최대여서 탐색해야하는 갯수가 그리 크지않아서 가능했다.
'Koala - 15기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준/c++] 1021번: 회전하는 큐 (0) | 2024.07.22 |
---|---|
[백준/Python3] 14465번 : 소가 길을 건너간 이유 5 (0) | 2024.07.21 |
[백준/C++] 1806번: 부분합 (0) | 2024.07.21 |
[백준/python] 1966: 프린터 (0) | 2024.07.21 |
[백준/C++] 15657번: N과 M (8) (0) | 2024.07.21 |