https://www.acmicpc.net/problem/7795
7795번: 먹을 것인가 먹힐 것인가
심해에는 두 종류의 생명체 A와 B가 존재한다. A는 B를 먹는다. A는 자기보다 크기가 작은 먹이만 먹을 수 있다. 예를 들어, A의 크기가 {8, 1, 7, 3, 1}이고, B의 크기가 {3, 6, 1}인 경우에 A가 B를 먹을
www.acmicpc.net

해석 및 팁
이 문제를 풀 때 단순히 이중반복문을 사용하면 시간초과가 발생하므로 시간을 줄여줘야 합니다. 따라서 배열을 정렬한 후에 check배열을 뒤에서부터 검사했을 때 arr배열이 큰 값이 존재하면 check배열의 남은값은 모두 arr배열보다 작기 때문에 남은 개수를 count에 더 해주면 됩니다.
Java 코드
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
int t = sc.nextInt();
for(int i = 0; i < t; i++) {
int count = 0;
int n = sc.nextInt();
int m = sc.nextInt();
int[] arr = new int[n];
int[] check = new int[m];
for(int j = 0; j < n; j++) arr[j] = sc.nextInt();
for(int j = 0; j < m; j++) check[j] = sc.nextInt();
Arrays.sort(arr);
Arrays.sort(check);
for(int j = 0; j < n; j++) {
for(int k = m - 1; k >= 0; k--) {
if(arr[j] > check[k]) {
count += (k + 1);
break;
}
}
}
sb.append(count + "\n");
}
System.out.println(sb);
}
}
'백준' 카테고리의 다른 글
백준 9996 한국이 그리울 땐 서버에 접속하지(Java) (0) | 2023.02.05 |
---|---|
백준 2012 등수 매기기(Java) (0) | 2023.02.05 |
백준 18310 안테나(Java) (0) | 2023.02.04 |
백준 11441 합 구하기(Java) (0) | 2023.02.04 |
백준 2089 -2진수(Java) (0) | 2023.02.04 |