[백준/BOJ]
문제 #7795
내가 작성한 코드
import java.io.*;
import java.util.*;
class Main{
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
StringTokenizer st;
int T = Integer.parseInt(br.readLine());
for(int t=1; t<=T; ++t) {
st = new StringTokenizer(br.readLine());
int aLen = Integer.parseInt(st.nextToken());
int bLen = Integer.parseInt(st.nextToken());
int[] a = new int[aLen];
int[] b = new int[bLen];
a = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
b = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
Arrays.sort(a);
Arrays.sort(b);
int ans = 0;
for(int i=0; i<aLen; ++i) {
ans += binarySearch(a[i], b);
}
sb.append(ans).append('\n');
}
bw.write(sb.toString());
bw.close();
br.close();
}
static int binarySearch(int target, int[] b) {
int left = 0;
int right = b.length;
int mid = 0;
while(left < right) {
mid = (left + right) / 2;
if(b[mid] < target) {
left = mid+1;
}else {
right = mid;
}
}
return left;
}
}
풀이 및 배운 점
처음에는 누적합으로 20001까지 배열을 만들어서, 갯수를 넣어두고자 했는데 주어지는 수는 20001이 넘을 수 있으므로 이 방법은 아닌걸로..
'코딩테스트(Coding Test) > 백준' 카테고리의 다른 글
[백준/BOJ16174] 점프왕 쩰리 (0) | 2024.07.06 |
---|---|
[백준/BOJ20002] 사과나무 (0) | 2024.07.04 |
[BOJ1238] 파티 (0) | 2024.04.27 |
[BOJ2011] 암호코드 (0) | 2024.02.01 |
[백준] 나머지와 몫이 같은 수 (0) | 2023.10.19 |