Daily LeetCode Challenge - 881. Boats to Save People

Min Young Kim·2023년 4월 3일
0

algorithm

목록 보기
110/198

Problem From.

https://leetcode.com/problems/boats-to-save-people/

오늘 문제는 사람들의 몸무게 배열이 주어지고, 최대 2명까지 태울 수 있는 배와 그 배가 견딜수 있는 무게 limit 가 주어졌을때, 사람들을 모두 구할 수 있는 배의 최소 갯수를 구하는 문제였다.

이 문제는 투포인터를 응용하여 풀었는데, 먼저 사람의 몸무게를 내림차순으로 나열하고,
몸무게가 제일 무거운 사람과 제일 가벼운 사람을 짝지어서 그 짝이 맞으면 answer 을 1 올리고 start + 1 과 end -1 을 해준다. 짝이 안맞으면 start 만 1 올려주는식으로 반복하여, 배의 최소 갯수를 구할 수 있었다.

class Solution {
    fun numRescueBoats(people: IntArray, limit: Int): Int {
        var answer = 0
        people.sortDescending()
        var start = 0
        var end = people.size - 1
        while(start <= end) {
            if(people[start] + people[end] <= limit) {
                answer += 1
                start += 1
                end -= 1
            }else {
                answer += 1
                start += 1
            }
        }
        return answer
    }
}
profile
길을 찾는 개발자

0개의 댓글