본문 바로가기
  • Jetpack 알아보기
LeetCode/Easy

[Java] LeetCode 455 : Assign Cookies

by 새우버거♬ 2021. 5. 14.

LeetCode # 455


 

 

 

Example 1:

 

Input: 
g = [1,2,3], s = [1,1]
Output:
 1
Explanation:
You have 3 children and 2 cookies. The greed factors of 3 children are 1, 2, 3. And even though you have 2 cookies, since their size is both 1, you could only make the child whose greed factor is 1 content. You need to output 1.

 

Example 2:

 

Input: 
g = [1,2], s = [1,2,3]
Output:
2
Explanation:
You have 2 children and 3 cookies. The greed factors of 2 children are 1, 2. You have 3 cookies and their sizes are big enough to gratify all of the children, You need to output 2.

 

Note:

  • 1 <= g.length <= 3 * 10⁴
  • 0 <= s.length <= 3 * 10
  • 1 <= g[i], s[j] <= 2³¹ - 1

Solution #1 (6ms)

class Solution {
    public int findContentChildren(int[] g, int[] s) {
        if (s.length == 0) return 0;

        Arrays.sort(g);
        Arrays.sort(s);

        int i = g.length - 1, j = s.length - 1;
        int result = 0;
        while (i >= 0 && j >= 0) {
            if (g[i] <= s[j]) {
                result++;
                i--;
                j--;
            } else {
                i--;
            }
        }

        return result;
    }
}

 

Result #1

💡 Arrays.sort() 를 이용하여 오름차순 정렬을 한다. 배열 g 의 값이 배열 s 값보다 작을 경우의 개수를 구한다.

오름차순 정렬을 하고, 배열 g 의 현재 인덱스 값 i 와 배열 s 의 현재 인덱스 값 j 를 각 배열의 길이 -1 값으로 초기화한다.

g[i] 값이 s[j] 값보다 작거나 같을 경우, 개수를 증가시키고, 인덱스 값  i,  j 를 각각 1씩 감소시킨다.

만약 g[i] 값이 s[j] 값보다 클 경우, 인덱스 값 i 만 1을 감소시킨다.

 


 

More Algorithm!

 

👇👇

 

github.com/ggujangi/ggu.leet-code

 

ggujangi/ggu.leet-code

LeetCode, Java. Contribute to ggujangi/ggu.leet-code development by creating an account on GitHub.

github.com

 

 

 

 

출처 : leetCode