LeetCode - Assign Cookies [C++]

someng·2021년 7월 23일
0

문제 📄

LeetCode 링크

Assume you are an awesome parent and want to give your children some cookies. But, you should give each child at most one cookie.

Each child i has a greed factor g[i], which is the minimum size of a cookie that the child will be content with; and each cookie j has a size s[j]. If s[j] >= g[i], we can assign the cookie j to the child i, and the child i will be content. Your goal is to maximize the number of your content children and output the maximum number.

🔎 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.

코드 👩🏻‍💻

class Solution {
public:
    int findContentChildren(vector<int>& g, vector<int>& s) {
        sort(g.begin(), g.end());
        sort(s.begin(), s.end());
        
        int i = 0;
        for(int j = 0; i < g.size() && j < s.size(); j++){
            if(g[i] <= s[j])
                i++;
        }
        return i;
    }
};

풀이 과정 🤓

LeetCode에서 제공하는 코딩실습은 처음이라 skeleton 코드를 어떻게 활용하는지 몰랐다. 백지 상태에서 children number, g[n], s[n] 등을 입력받으며 코드를 써내려갔는데 input 형태와 맞지 않는다는 에러가 계속 발생하였다.
에러 해결을 위한 시도를 해보았지만 해결을 하지 못했고, LeetCode 활용을 제대로 못하는 것에 원인이 있을까 해서 다른 분이 짜놓은 코드를 참고하였다.

<STL 정렬 sort 함수 사용법>

*헤더 파일: < algorithm >

배열의 오름차순 정렬, vector의 오름차순 정렬 등 세세한 내용들이 있지만 작성된 코드에서 사용된 부분은 vector의 오름차순 정렬이다. 나머지 내용은 링크를 참고하면 된다.

vector< int > arr

//... push_back() 함수로 arr 채움

// 첫번째 인자는 iterator의 begin()
// 두번째 인자는 iterator의 end()
sort(arr.begin(), arr.end());

결과 ✨

profile
👩🏻‍💻 iOS Developer

0개의 댓글