LeetCode 문제 풀이

[LeetCode] 881번 문제를 풀어보았다. (ft. java)

pantrom 2022. 3. 24. 19:57

2022년 03월 24일 목요일 - 게임을 만들거시야!


오늘 올려볼 문제는 881번 Boats to Save People 이라는 문제이다.


사진을 클릭하면 해당 문제로 이동합니다.

leetcode 문제 사진

오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.

오늘은 3분 컷


입력


사진에서도 볼 수 있듯이 int 배열 하나와 int 값 하나가 입력으로 들어온다.



풀이 및 코드


최대 2명에 limit 무게까지 태울 수 있는 배가 무한히 있다.

이 때 주어진 사람 몸무게를 통해서 모든 사람들을 태우는데 필요한 가장 적은 배의 수를 구하여 리턴하는 문제다.


오늘은 처음부터 정답을 생각해냈다.

정렬을 하고 그리디로 문제를 풀었다.

2명까지 태울 수 있다고 했으므로 투포인터도 사용하여 문제를 풀었다.


이제 코드를 봐보자!


풀이코드

class Solution {
    public int numRescueBoats(int[] people, int limit) {
        Arrays.sort(people);
        int result = 0;
        int left = 0, right = people.length - 1;

        while(right > left)
        {
            if(people[right--] + people[left] <= limit) left++;

            result++;
        }

        if(left == right)
            result++;

        return result;
    }
}




제출 화면

leetcode 문제 맞았습니다


오늘은 내가 생각한 대로 문제가 딱 빨리 풀려서 기분이 좋았다.

내일 문제도 이러한 문제가 나왔으면 좋겠다.


내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.