- 자녀들이 만족하는 쿠키의 최소크기가 있고
- 부모들이 보유한 쿠키의 크키가 있다.
- 자녀의 만족하는 쿠키 크기가 5라고 한다면 무조건 5보다 큰 (5,6,7...)쿠키를 줘야하고
- 작은걸 모아 큰걸 만들수는 없으니까 단순히 정렬&& 비교해서 풀었다
- 굳이 문제분류를 하자면 "순간의 최선이 전체의 최선과 동일하다" 라는 그리디 문제라고 할수 있겠다.
import java.util.*;
class Solution {
public int findContentChildren(int[] g, int[] s) {
Arrays.sort(g);
Arrays.sort(s);
int gidx = 0;
int sidx = 0;
int ans = 0;
while (true) {
if((g.length <= gidx) || (s.length <= sidx)) {
break;
}
if(g[gidx] <= s[sidx]) {
ans++;
sidx++;
gidx++;
}
else {
sidx++;
}
}
return ans;
}
public static void main(String[] args) {
tester(new int[] {1,2,3}, new int[] {1,1}, 1);
tester(new int[] {1,2}, new int[] {1,2,3}, 2);
}
public static void tester(int[]g, int[]s, int ans) {
Solution ss = new Solution();
int ret = ss.findContentChildren(g,s);
if(ret == ans) {
System.out.println("OK");
}
else {
System.out.printf("NG >> answer:%d, but your return:%d\n",ans,ret);
}
}
}