[백준] 7795번 먹을 것인가 먹힐 것인가 (C++, 정렬 혹은 이분탐색)
728x90
반응형
정렬 혹은 이분탐색으로 많이 풀던데 나는 내림차순 정렬해놓고
i, j 를 모두 0으로 초기화한 다음 a가 더 작으면 i를 증가, b가 크면 j를 증가시키는 방식으로 비교해줬다
O(n+m) 이라고 생각됨
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;
int main(void) {
ios::sync_with_stdio(false);
cin.tie(NULL);
int t;
cin >> t;
while (t--) {
int a[20000];
int b[20000];
int n, m;
cin >> n >> m;
for (register int i = 0; i < n; i++) {
cin >> a[i];
}
for (register int i = 0; i < m; i++) {
cin >> b[i];
}
sort(a, a + n,greater<int>());
sort(b, b + m,greater<int>());
int cnt = 0;
int i = 0, j = 0;
while (i < n && j < m) {
if (a[i] <= b[j]) {
j++;
}
else {
cnt += m - j;
i++;
}
}
cout << cnt << "\n";
}
return 0;
}
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 20920번 영단어 암기는 괴로워 (C++, hash, vector, sort) (0) | 2021.10.13 |
---|---|
[백준] 16165번 걸그룹 마스터 준석이 (C++, 해시) (0) | 2021.10.08 |
[백준] 10825번 국영수 (C++ , 정렬) (0) | 2021.10.07 |
[백준] 5648번 역원소 정렬 (C++, 정렬) (0) | 2021.10.07 |
[백준] 11652번 카드 (C++, 정렬) (0) | 2021.10.07 |
TAGS.