
어차피 A의 숫자에 대응해서 내야 할 B의 숫자는 같기 때문에, 정렬해서 푸는 문제
A와 B를 내림차순 정렬한다.A의 인덱스 변수 idx를 초기화 하고 B를 기준으로 반복문을 돌린다.idx가 A 범위를 넘어가면 breakB[i]가 A[idx]보다 크다면, 대응한 것이므로 answer++ 해주고 그 idx는 대응된 것이므로 다음으로 넘겨준다(idx++)idx++ 해준다.#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
int solution(vector<int> A, vector<int> B) {
int answer = 0;
sort(A.begin(), A.end(), greater<int>());
sort(B.begin(), B.end(), greater<int>());
int idx = 0;
for(int i=0;i<B.size();i++)
{
while(1)
{
if(idx == A.size()) break;
if(B[i]>A[idx])
{
answer++;
idx++;
break;
}
idx++;
}
}
return answer;
}