diff --git a/Greedy/AssignCookies.java b/Greedy/AssignCookies.java new file mode 100644 index 0000000..66f3213 --- /dev/null +++ b/Greedy/AssignCookies.java @@ -0,0 +1,63 @@ +import java.util.*; + +class Solution { + public int findContentChildren(int[] greedyChildren, int[] cookieSize) { + Arrays.sort(greedyChildren); + Arrays.sort(cookieSize); + + int child = 0, cookie = 0, contentChildren = 0; + + while (child < greedyChildren.length && cookie < cookieSize.length) { + if (cookieSize[cookie] >= greedyChildren[child]) { + contentChildren++; + child++; + cookie++; + } else { + cookie++; + } + } + return contentChildren; + } +} + +public class Main { + public static void main(String[] args) { + Solution sol = new Solution(); + + // Case 1: Basic case + int[] g1 = {1, 2, 3}; + int[] s1 = {1, 1}; + System.out.printf("Case 1 (Basic): %d%n", + sol.findContentChildren(g1, s1)); + + // Case 2: Enough cookies + int[] g2 = {1, 2}; + int[] s2 = {1, 2, 3}; + System.out.printf("Case 2 (Enough cookies): %d%n", + sol.findContentChildren(g2, s2)); + + // Case 3: No cookies + int[] g3 = {1, 2, 3}; + int[] s3 = {}; + System.out.printf("Case 3 (No cookies): %d%n", + sol.findContentChildren(g3, s3)); + + // Case 4: Cookies too small + int[] g4 = {2, 3, 4}; + int[] s4 = {1, 1, 1}; + System.out.printf("Case 4 (Cookies too small): %d%n", + sol.findContentChildren(g4, s4)); + + // Case 5: Unsorted input + int[] g5 = {4, 1, 2}; + int[] s5 = {2, 1, 3}; + System.out.printf("Case 5 (Unsorted input): %d%n", + sol.findContentChildren(g5, s5)); + + // Case 6: No children + int[] g6 = {}; + int[] s6 = {1, 2, 3}; + System.out.printf("Case 6 (No children): %d%n", + sol.findContentChildren(g6, s6)); + } +}