[LeetCode] Assign Cookies

아르당·약 4시간 전

LeetCode

목록 보기
93/94
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

당신이 훌륭한 부모라고 가정한다. 아이들에게 쿠키를 주고 싶지만, 아이 한 명당 최대 한 개씩만 줘야 한다.

각 자식 i는 만족할 수 있는 최소 쿠키 크키인 탐욕 지수 g[i]를 가지고 있고, 각 쿠키 j는 크기 s[j]를 가지고 있다. 만약 s[j] >= g[i]이면, 쿠키 j를 자식 i에게 할당할 수 있고, 자식 i는 만족하게 된다. 여러분의 목표는 만족하는 자식의 수를 최대화 하고 그 결과를 출력하는 것이다.

Example

#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를 출력한다.

Constraints

  • 1 <= g.length <= 3 * 10^4
  • 0 <= s.length <= 3 * 10^4
  • 1 <= g[i], s[j] <= 2^31 - 1

Solved

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;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글