leetcode - assign-cookies 문제풀이 java8

9584 단어 코테코테
  • 자녀들이 만족하는 쿠키의 최소크기가 있고
  • 부모들이 보유한 쿠키의 크키가 있다.
  • 자녀의 만족하는 쿠키 크기가 5라고 한다면 무조건 5보다 큰 (5,6,7...)쿠키를 줘야하고
    • 2+3 쿠키로는 만족시킬수 없다
  • 작은걸 모아 큰걸 만들수는 없으니까 단순히 정렬&& 비교해서 풀었다
  • 굳이 문제분류를 하자면 "순간의 최선이 전체의 최선과 동일하다" 라는 그리디 문제라고 할수 있겠다.
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);

        }
    }
}

좋은 웹페이지 즐겨찾기