#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> A, vector<int> B) {
int answer = 0;
sort(A.begin(), A.end());
sort(B.begin(), B.end());
int index = 0;
for(int i = 0; i < B.size(); i++)
{
if(A[index] < B[i])
{
index++;
answer++;
}
}
return answer;
}
풀이
1. 낮은 순으로 정렬해준다.
2. A를 B로 하나씩 비교하면서 최대한 작은 수로 이길 수 있게 유도한다.
느낀점
탐욕적 풀이들은 웬만하면 다 쉽게 생각해야 쉽게 풀리는 것같다. 더 쉽게 생각해보자.
https://school.programmers.co.kr/learn/courses/30/lessons/12987
'Algorithm > Programmers' 카테고리의 다른 글
[C++] 프로그래머스 이진 변환 반복하기 (0) | 2024.04.01 |
---|---|
[C++] 프로그래머스 징검다리건너기 (0) | 2024.03.19 |
[C++] 프로그래머스 최고의 집합 (0) | 2024.02.29 |
[C++] 프로그래머스 야근 지수 (0) | 2024.02.29 |
[C++] 프로그래머스 숫자의 표현 (0) | 2024.02.16 |