320x100
https://programmers.co.kr/skill_checks/304247
1차 - 케이스는 통과했지만 erase 때문에 효율성 통과 못함.
#include <vector>
#include <algorithm>
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>());
for (int i=0; i<A.size(); ++i)
{
int min_diff = A[i];
auto before = B.end();
for (auto iter = B.begin(); iter != B.end(); ++iter)
{
if (*iter > min_diff)
min_diff = *iter;
else
break;
before = iter;
}
if (min_diff == A[i])
{
continue;
}
else
{
B.erase(before);
++answer;
}
}
return answer;
}
2차 - erase 제거하고 인덱스로만 접근
#include <vector>
#include <algorithm>
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 a_position = 0;
int b_position = 0;
for (int i=0; i<A.size(); ++i)
{
if (A[a_position] < B[b_position])
{
++b_position;
++answer;
}
++a_position;
}
return answer;
}
320x100
'코딩테스트 준비 > 프로그래머스' 카테고리의 다른 글
2021 카카오 채용연계형 인턴십거리두기 확인하기 (0) | 2022.04.23 |
---|---|
2020 KAKAO BLIND RECRUITMENT문자열 압축 (0) | 2022.04.18 |