문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
당신이 훌륭한 부모라고 가정한다. 아이들에게 쿠키를 주고 싶지만, 아이 한 명당 최대 한 개씩만 줘야 한다.
각 자식 i는 만족할 수 있는 최소 쿠키 크키인 탐욕 지수 g[i]를 가지고 있고, 각 쿠키 j는 크기 s[j]를 가지고 있다. 만약 s[j] >= g[i]이면, 쿠키 j를 자식 i에게 할당할 수 있고, 자식 i는 만족하게 된다. 여러분의 목표는 만족하는 자식의 수를 최대화 하고 그 결과를 출력하는 것이다.
#1
Input: g = [1, 2, 3], s = [1, 1]
Output: 1
Explanation: 당신은 3명의 자식과 2개의 쿠키가 있다. 세 아이의 탐욕 수치는 1, 2, 3이다. 쿠키가 2개 있더라도 크기가 모두 1이므로, 욕심이 1인 아이만 만족시킬 수 있다.
당신은 1을 출력한다.
#2
Input: g = [1, 2], s = [1, 2, 3]
Output: 2
Explanation: 당신은 2명의 자식과 3개의 쿠키가 있다. 두 아이의 탐욕 수치는 1, 2이다. 쿠키가 3개 있고, 크기는 아이들 모두를 만족시킬 만큼 충분히 크다. 결과로 2를 출력한다.
class Solution {
public int findContentChildren(int[] g, int[] s) {
int cookieSize = s.length;
if(cookieSize == 0) return 0;
Arrays.sort(g);
Arrays.sort(s);
int maxNum = 0;
int cookieIndex = cookieSize - 1;
int childIndex = g.length - 1;
while(cookieIndex >= 0 && childIndex >= 0){
if(s[cookieIndex] >= g[childIndex]){
maxNum++;
cookieIndex--;
childIndex--;
}else{
childIndex--;
}
}
return maxNum;
}
}